/**=================================================================================
 * 					工作流引擎运行的js库
 *
 * 表单内容放在id为divForm的div中。表单的操作在js/jquery/workflow/jquery.zyform.js中
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 =================================================================================*/

// 流程定义对象
var wfDefineInfoObj = null;
// 具体的流程步骤定义对象
var workFlowObj = null;
// 步骤定义对象
var stepInfoObj = null;
// 表单定义对象
var formDefineObj = null;
// 后续及预设步骤信息。在opt_commit中通过调用ajax取得值
var nextAndPreSetStepsObj = null;
// 当前步骤信息。在opt_addReplyObj中通过调用ajax取得值
var curStepObj = null;
// 是否选择了一个PDF文件
var isSelectedPdfFile = false;
// pdf文件是否已经保存成功
var isSuccessSavedPdf = false;
// pdf文件是否已经存在
var isExistedPdfFile = false;
// 保留pdf文件名
var _uploadFileName = "";
// 版式文件SEP临时名称
var tempFileName=new Date().getTime();

// 默认保存到docFile的类型为草稿.
//	可用类型：ZW_DRAFT:正文草稿(带修改痕迹)	ZW:正式的正文(授受修订，不带痕迹)	ZW_PDF:正式正文生成的PDF格式文档(不带痕迹)
var docFileType = "ZW_DRAFT";

// 打开文件所用的url地址
//var openDocUrl = "http://"+window.location.host + _contextPath + "/docFileAction!openDoc.shtml";		// 使用docFileAction
var openDocUrl = "http://"+window.location.host + _contextPath + "/servlet/docFileServlet";				// 使用docFileServlet。比docFileAction!open.shtml打开速度更快

// add by wuguosuan,需要生成绑示文件的源文件(word)的绝对路径
var fileName = "";
// add by wuguosuan,需要生成绑示文件的源文件(pdf)的绝对路径
var fileNamePdf = "";
// add by wuguosuan,绑示文件的URL路径
var bangSFileUrl = "";
// 书生电子印章生成存放文件的临时文件夹
var sursenTempDir="C:\\WINDOWS\\temp\\sursen";
// 杭州天谷电子印章生成存放文件的临时文件夹
var tgTempDir="C:\\WINDOWS\\temp\\tg";
// 存放二维码的临时文件夹
var htkyBarCodeTempDir="C:\\WINDOWS\\temp";

// 全局变量：分管副秘书长审核（是否公开和是否规范性文件的标志）
// 最后是出来哪个步骤的判断（0：不公开且不是规范性文件  1：公开且不是规范性文件  2：不公开且是规范性文件  3：公开且是规范性文件）
var flagIsGongKai = 0;

//默认期望离开时间
var expectLeaveDateTime="";

//是否直接盖章，也就是第一步同时拟稿盖章并没有进行过提交操作
//盖章完成取文件时，由于第一步是创建并没有wfentity.id则默认取模板
//覆盖了拟稿时填写的内容，为此需要在盖章完成后取盖章前上传保存的文档
var isDirectSeal=false;
//- 模板对应id的配置
var dealDocument={
    //市府办
    "orgId_7":{
        //收文登记 办件、阅件、国务院来文
    	"SW_DRAFT":26,
        "SW_BJ":25,
        "SW_BJ_DRAFT":25,
        "SW_YJ":26,
        "SW_YJ_DRAFT":26,
        "SW_QSJ":73,
        "SW_QSJ_DRAFT":73,
        "SW_GWYLW":27,
        "SW_GWYLW_DRAFT":27,
        //发文拟稿纸 审签单
        "FAWEN_DRAFT":41,
        "FAWEN_DRAFT_PRINT":53,
        "PUBLIC_SHENGPI":22,

        // 事务审签单
        "SWU_DRAFT":23,
        // 批示办理单
        "PS_DRAFT":182,
        // 信访件交办单
        "XFJ_DRAFT":216
    },
    //市政协
    "orgId_8":{
        "SW_BJ":62,
        "SW_BJ_DRAFT":62,
        "SW_YJ":63,
        "SW_YJ_DRAFT":63,
        "SW_GWYLW":27,
        "SW_GWYLW_DRAFT":27,
        "FAWEN_DRAFT":60,
        "FAWEN_DRAFT_PRINT":64,
        "PUBLIC_SHENGPI":61
    },
    //金华市网络经济发展局
    "orgId_208":{
        "FAWEN_DRAFT":87,
        "FAWEN_DRAFT_PRINT":87
    }
};

var PDF417Manager;
var PDF417Reader;
var tdReadStatus;

// 是否打开正文
var isOpenZw = false;


// 以下用来调整word控件大小，防止控件大小经常变化产生的页面频繁刷新问题
$(document).ready(function(){
	
	
	if($("#cur_userId").length>0){
		var userId = $("#cur_userId").val();
		if(typeof(userId)!="undefined" && (userId==187 || userId==1625)){
			tgTempDir="C:\\temp\\tg";
		}
		
	}
    //$("#wordWidth").css("width",$("table").width());

    // 生成常用意见下拉选择框。并且点击时，将意见自动添加到意见栏中
    try{
//		$("select#suggest").fillWithDictName("suggest",function(){
//			$("select#suggest").change(function(){
//				$("textarea#wfStepUser\\.opinion").val($("textarea#wfStepUser\\.opinion").val() + " " + $(this).val());
//				return false;
//			});
//		});
//		$("select#suggest1").fillWithDictName("suggest",function(){
//			$("select#suggest1").change(function(){
//				$("textarea#userSignInfo").val($("textarea#userSignInfo").val() + " " + $(this).val());
//				return false;
//			});
//		});
//		$("select#suggest2").fillWithDictName("suggest",function(){
//			$("select#suggest2").change(function(){
//				$("textarea#wfStepUser_opinion").val($("textarea#wfStepUser_opinion").val() + " " + $(this).val());
//				return false;
//			});
//		});


//    	if($("#isHasMobileDraft").val()=="true"){
//
//    		$("#divPdfContain").show();
//            $("#divPdfContain").append('<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" name="pdfActivexObj" id="pdfActivexObj" width="100%" height="0" border="0">');
//            $("#divPdfContain").append('   <param name="toolbar" value="false">');
//            $("#divPdfContain").append('   <param name="_Version" value="65539">');
//            $("#divPdfContain").append('   <param name="_StockProps" value="0">');
//            //$("#divPdfContain").append('   <SPAN STYLE="color:red">不能装载PDF控件。请你先安装adobe pdf阅读软件！</SPAN>');
//            $("#divPdfContain").append('</object>');
//
//            var url = "http://"+window.location.host + _contextPath + "/docFileAction!openDoc.shtml?id="+$("#mobileDraftPdfId").val();
//    	    setPdfControlProp(url);
//    	}

        $("select.suggest").each(function(){
            $(this).fillWithDictName("suggest");
        });

        $("select.suggest").live("change",function(){
            var id = $(this).attr("target");
            id = id.replace(/\./gi,"\\.");
            var $obj = $("textarea#" + id);
            $obj.val($obj.val() + " " + $(this).val());
            return false;
        });
    }catch(e){}


    // 使用ajax方式,取得流程\流程定义\步骤\表单等相关对象的数据。因jsonplugin插件有lazy问题，暂时不使用
    // initJsonObject();

	try{
        switch($("#wfEntity\\.editorType").val().toUpperCase()){
            case	"OFFICE":
                // 如果流程实例未结束（还在流转中），office文档的类型应该是ZW_DRAFT（草稿文件）。
                //		流转结束后，如果有ZW_PDF文档，则显示ZW_PDF文档（由正式文件转换而来的PDF文件）
                //					没有ZW_PDF文档，则显示正式文件（类型为ZW）
                if($("#wfEntity\\.status").val()!="FINISH"){
                    openDocFile("ZW_DRAFT");
                }else{
                    if($("#isHaveZwPdfFile").val()=="true"){
                        openZwPdfFile();
                    }else{
                        openDocFile("ZW");
                    }
                }


                // 窗口改变大小时，也改变word控件的大小
                $(window).bind("resize", function() {
                    $("#TANGER_OCX").width($(document).width() * 0.97);
                });
                $(window).trigger("resize");


                if($("span#docFileHistoryList").length>0){
                    // 显示历史文档信息
                    $("span#docFileHistoryList").showDocFileSelect(
                        "WF_ENTITY",
                        $("#wfEntity\\.docDataId").val(),
                        openDocFileById,
                        {
                            title			: "点击恢复历史文档",
                            needConfirm	: true,
                            confirmContent	: "恢复选定的历史文档将丢失正在编辑的文档内容，你确认要操作吗？"}
                    );
                }

                if($("span#docTemplatesSelectList").length>0){
                    var ids = $("#formDefine\\.docTempIdBak").val();
                    if(!isEmpty(ids)){
                        $("span#docTemplatesSelectList").showDocTemplateSelect(
                            ids,
                            openDocTemplateById,
                            {
                                title			: "点击重新选择文档模板",
                                needConfirm		: true,
                                confirmContent	: "重新选择文档模板将丢失你已录入的文档内容，你确认要操作吗？"}
                        );

                    }
                }
                break;

            case	"PDF":
            	if($("#isHasSwSeal").val()=="true"){
            	}else{
            		openPdfFile();
            	}
                break;

            default:
        }

        isOpenZw = true;
    }catch(e){}



    // 根据是否处于修改状态决定如何生成表单数据
    try{
        var id = $("#formDataMaster\\.id").val();
        var preId = $("#preFormDataMasterId").val();
        if(isEmpty(id)){
        	if(isEmpty(preId)){
        		$("div#divForm").zyform({status:_editState});
        		selectedNormativeDoc();
				autoGenerateDateNumberEvent();
        	}else{

        		$.getJSON("./formDataCRUDAction!getFormDataJSON.shtml?formDataMaster.id=" + preId, function(data){
                    if(typeof(data.fail)!="undefined"){

                        alert("获取表单数据时失败：" + data.fail);
                        return;
                    }else{

                        $("div#divForm").zyform({status:_editState},data);
                    }
                });
        	}

        }else{

            $.getJSON("./formDataCRUDAction!getFormDataJSON.shtml?formDataMaster.id=" + id, function(data){
                if(typeof(data.fail)!="undefined"){

                    alert("获取表单数据时失败：" + data.fail);
                    return;
                }else{

                	if(_conflictState=="YES"){

                		$("div#divForm").zyform({status:""},data);
                    }else{
                	    $("div#divForm").zyform({status:_editState},data);
                    }

                    selectedNormativeDoc();
					autoGenerateDateNumberEvent();
                }
            });
        }
    }catch(e){}

//	// 生成附件列表
//	if($("#wfEntity\\.docDataId").val()!=""){
//		$("div#_attachments").showAttachment("WF_ENTITY",$("#wfEntity\\.docDataId").val());
//	}

    // 启用表单验证插件
    $("form#wfEntityForm").validationEngine({});

    // 用户改变“转成新流程”的值时
    $("#wfConvertDTO\\.code").change(function(){
        changeConvertCcode();
    });

    // 如果流程定义中，设置了在表单页面显示意见信息，则生成相应的数据
    try{
        if($("#isShowIdeaList").val()=="true"){
            // 生成历史意见数据
            showHisIdeaList();
            $("input:checkbox#isShowHisIdeas").click(function(){
                if($(this).prop("checked")==true){
                    //$("div#divHisIdeaContain").show();
                    $("div#divHisIdeaContain").fadeIn("normal",function(){
                        $("html,body").animate({scrollTop:  $("#wfStepUser\\.opinion").offset().top},1000);
                    });
                }else{
                    //$("div#divHisIdeaContain").hide();
                    $("div#divHisIdeaContain").fadeOut("normal");
                }
            });
        }
    }catch(e){}

    // 生成相关流程信息
    showConnectFlowList();

    // pdf文件上传。用户选择了文件时，触发以下操作
    try{
        if($("#uploadFile").length>0){
            $("#uploadFile").change(function(){
                if(_uploadFileName==$("#uploadFile").val()){
                    return;
                }else{
                    _uploadFileName = $("#uploadFile").val();
                }

                isSuccessSavedPdf = false;
                // 显示pdf文件
                setPdfControlProp(this.value);

                // 延迟2秒问用户是否要上传文件
                setTimeout(function(){
                    if(isEmpty($("#uploadFile").val().trim())){
                        return;
                    }
                    if(confirm("您选择的文件是否正确？\r\n正确的话，系统会将此文件上传到服务器上！")==false){

                        return;
                    }else{
                        // 文件选择正确，则执行上传pdf文件操作
                        savePdfFile();
                    }
                },2000);
            });
        }
    }catch(e){}


    // 窗口关闭，或是刷新时被调用
    $(window).bind("beforeunload",function(){
        var p = window.opener||window.dialogArguments||window.parent;
        // 点击关闭时，如果发现父页面上定义了刷新页面的方法，则调用刷新页面的方法
        if(typeof(p.refreshPage)!="undefined"){
            p.refreshPage();
        }
        // 返回值：true:关闭窗口，false:阻止关闭窗口
    });


    //设置期望离开时间，当前时间的3天后(三天后催办流程)
    try{
        var url="wfEntityAction!getAfterWorkDate.shtml?r=" + Math.random()+"&days=3";
        $.getJSON(url,function(data){
            expectLeaveDateTime=data.date;
        });
    }catch(e){}

    // 看下是否显示表单
    inputLengthHandler();
    //initHiddenForm();
    // 收文的场合，一开始不隐藏表单信息
    if($("#wfTypeLibId").length >0 && $("#wfTypeLibId").val()=="1"){

    }else{
    	clickTitleToggleBody();
    }

    //初始化联系人和联系电话
    getCurContact();
    //绑定批示人参照
    bindPishiRen();
    //针对联合发文选择是的时候，自动选用市委办的机关代字
    if($("#f_shifoulianhefawen").val()=="1"){
    	toggleDocNum(true);
    }
    //mergerWordCtrlBindEvent();  不使用文件选择框的word文件合并实现形式
    refreshAttachment();
    stopSaveAndCopyDoc();

    initBarCode();


    if($("#curStep\\.isPopup").val()=="true" && !isEmpty($("#curStep\\.auditingStandardsId").val()) && !isEmpty($("#wfStep\\.status").val()) && ($("#wfStep\\.status").val()=="NOT_ENTER" || $("#wfStep\\.status").val()=="DOING")){

    	// 延迟2秒问用户是否要上传文件
        setTimeout(function(){
        	opt_seeStandard();
        },2000);
    }
    
    // 通过拖拽上传最终扫描件PDF正文
    $("#dropz").dropzone({
	    url: "./docFileAction!saveDocForDropzone.shtml",
	    addRemoveLinks: true,
	    dictRemoveLinks: "删除文件",
	    dictCancelUpload: "取消上传",
	    maxFiles: 1,
	    maxFilesize: 5,
		autoProcessQueue: true,
		clickable:true,
	    acceptedFiles: ".pdf",
	    params:{"dataId":$("#wfEntity\\.docDataId").val(),"dataTable":"WF_ENTITY","type":"ZW_PDF"},
	    init: function() {
	        this.on("success", function(file,xhr) {
	        	var json = eval('(' + xhr + ')');
	        	var eValue=eval('json.'+'docId');
	        	$("#docfileid").val(eValue);
	        	getZwList();
	            return;
	        });
	        this.on("removedfile", function(file,xhr) {

	            $.ajax({
		    			type : 	    "POST",
		    			url : 		"./docFileAction!ajaxRemoveDataAndFileById.shtml",
		    			data : 		{"id":$("#docfileid").val()},
		    			dataType: 	"json",
		    			success : function(data) {
		    				if(data.result=="fail"){
		    					alert(data.content);
		    					return false;
		    				}else{
		    					getZwList();
		    				}
		    			},
		    			error : function() {
		    				alert("删除上传附件时异常！");
		    				return false;
		    			}
		    		});
		    });
	    }
	});

});

/**
 * 初始打开正文
 */
function openZwOnClick(){
	// 根据用户选择的正文类型，分别进行处理
    try{
        switch($("#wfEntity\\.editorType").val().toUpperCase()){
            case	"OFFICE":
                // 如果流程实例未结束（还在流转中），office文档的类型应该是ZW_DRAFT（草稿文件）。
                //		流转结束后，如果有ZW_PDF文档，则显示ZW_PDF文档（由正式文件转换而来的PDF文件）
                //					没有ZW_PDF文档，则显示正式文件（类型为ZW）
                if($("#wfEntity\\.status").val()!="FINISH"){
                	openDocFile("ZW_DRAFT");
                }else{
                    if($("#isHaveZwPdfFile").val()=="true"){
                        openZwPdfFile();
                    }else{
                    	openDocFile("ZW");
                    }
                }


                // 窗口改变大小时，也改变word控件的大小
                $(window).bind("resize", function() {
                    $("#TANGER_OCX").width($(document).width() * 0.97);
                });
                $(window).trigger("resize");


                if($("span#docFileHistoryList").length>0){
                    // 显示历史文档信息
                    $("span#docFileHistoryList").showDocFileSelect(
                        "WF_ENTITY",
                        $("#wfEntity\\.docDataId").val(),
                        openDocFileById,
                        {
                            title			: "点击恢复历史文档",
                            needConfirm	: true,
                            confirmContent	: "恢复选定的历史文档将丢失正在编辑的文档内容，你确认要操作吗？"}
                    );
                }

                if($("span#docTemplatesSelectList").length>0){
                    var ids = $("#formDefine\\.docTempIdBak").val();
                    if(!isEmpty(ids)){
                        $("span#docTemplatesSelectList").showDocTemplateSelect(
                            ids,
                            openDocTemplateById,
                            {
                                title			: "点击重新选择文档模板",
                                needConfirm		: true,
                                confirmContent	: "重新选择文档模板将丢失你已录入的文档内容，你确认要操作吗？"}
                        );

                    }
                }
                break;

            case	"PDF":
                openPdfFile();
                break;

            default:
        }
    }catch(e){}
}
//初始化方法，用于获取activeX控件对象
function initBarCode() {
	PDF417Manager = document.getElementById("PDF417Manager");
	PDF417Reader = document.getElementById("PDF417Reader");

	//TANGER_OCX_OpenDoc("./templateFile/newWordTemplate.doc");
	tdReadStatus = document.getElementById("tdReadStatus");
}


//将图片插入到word文件中(用于将生成的二维码图片文件插入到文件中)
function addPicFromLocal(url,top,left,relative)	{
	if(TANGER_OCX_bDocOpen){
		try
		{
			TANGER_OCX_OBJ.AddPicFromLocal(url,//插入的文件路径
				false,//是否提示选择
				true, //是否浮动
				left,//左边距
				top,//上边距 根据Relative的设定选择不同参照对象
				relative,  //Relative,取值1-4。设置左边距和上边距相对以下对象所在的位置 1：光标位置；2：页边距；3：页面距离 4：默认设置栏，段落
				100,//缩放印章,默认100%
				1);   //0印章位于文字下方,1位于上方
		}
		catch(error){}
	}
}

//生成二维码
function insertBarCode(){
	var txt = document.getElementById("PDF417Text").value;
	if(txt==null || txt=="" || typeof(txt)=="undefined"){
		alert("要生成的二维码内容不能为空！");
		return;
	}else{
		insertBarCodePDF417(txt,2);
	}
}


/**
 * 初始状态是否隐藏表单内容
 */
function initHiddenForm(){
    var para = document.getElementById("divForm").style.display;
    var entityId = $("#wfEntity\\.id").val();
    if(entityId==""){
    }else{
        if(para=="none"){
            document.getElementById("divForm").style.display = "";//显示
        }else{
            document.getElementById("divForm").style.display = "none";//不显示
        }
    }
}


function checkForm() {
    var strMsg = "";
    // 类型：AlphaNumeric,Date,Email,Empty,Numeric,Money,PostalCode,Url
    //strMsg = strMsg + Validate("wfEntity.code", "编码", "NotEmpty|AlphaNumeric");
    //strMsg = strMsg + Validate("wfEntity.name", "名称", "NotEmpty");

//	strMsg += $("div#divForm").zyFormValid();

    // 将html内容的值赋到相应的元素中，以避免空值错误
    $("textarea[txtinputtype=html]",$('form#wfEntityForm')).each(function(){
        if($(this).is("[inputReadonly=true]")==true)	return;			// 只读

        var oEditor = FCKeditorAPI.GetInstance( $(this).attr("name") ) ;
        if(typeof(oEditor)!="undefined" && oEditor!=null){
            $(this).val(oEditor.GetXHTML());
        }
    });

    // 对表单内容进行校验，看是否输入正确
    var rtn = $('form#wfEntityForm').validationEngine({returnIsValid:true});

    if (rtn == false) {
        return false;
    } else {
        return true;
    }
}

/**
 * 保存正文文件（office文件或是pdf文件）
 * 	html及“无”，则返回true
 *
 * @return {Boolean}
 */
function saveEntityFile(){
    // 根据用户选择的正文类型，分别进行保存操作
    switch($("#wfEntity\\.editorType").val().toUpperCase()){
        case	"OFFICE":				// 如果编辑器类型为OFFICE,则需要保存word文档
            if(saveDocFile()==true){
                return true;
            }else{
                return false;
            }
            break;
        case	"PDF":
            // 如果已经存在pdf文件，或是用户已经上传成功了pdf文件，则返回true
            if(isSuccessSavedPdf==true || isExistedPdfFile==true){
                return true
            }else{
                alert("请您先上传选择的pdf文件！！");
                return false;
            }
            break;
        case	"HTML":
        case	"NONE":
            return true;
        default:
            alert("文件保存方法调用出错,类型不存在：" + $("#wfEntity\\.editorType").val().toUpperCase());
            return false;
    }
    return false;
}
/**
 * 如果是OFFICE文档，保存草稿文档，并且同时生成不带修改痕迹的正式文档。
 * 根据表单设置，决定是否生成PDF文档。
 *
 * [发布]及[流程结束]时调用
 */
function saveDocFileAndCreateNoReviewDoc(){
    // 非OFFICE文档，不需要保存，直接返回true
    if($("#wfEntity\\.editorType").val().toUpperCase()!="OFFICE"){
        return true;
    }

    // 如果编辑器类型为OFFICE,则需要保存word文档
    // 此处保存草稿文档，type = "ZW_DRAFT"
    docFileType = "ZW_DRAFT";
    if(saveDocFile()==false){
        return false;
    }

    // 生成不带修改痕迹的正式文档
    docFileType = "ZW";
    //删除文档中的所有注释包括墨迹
    TANGER_OCX_DeleteAllComments();
    // 接受所有的修订（生成不带痕迹的正式文档）
    if(TANGER_OCX_AcceptAllRevisions()==false){
        //alert("对草稿文档执行'接受所有的修订'功能时出错，不能生成不带修改痕迹的正式文档！");
        return;
    }

    // 将没有痕迹的正式文档进行保存
    if(saveDocFile()==false){
        //alert("生成不带修改痕迹的正式文档时不成功！");
        return false;
    }

    var id = $("#wfEntity\\.docDataId").val();

    // 删除历史的草稿文档
    /**		本功能已移到Publish.java中进行处理，页面上不再需要调用！！！
     if(removeHistoryDoc(id)==false){
		return false;
	}
     */

    // 表单定义时，设置结转结束后需要将office文档转换为pdf格式
    if($("#formDefine\\.isConvertPDF").val()=="1"){
        // 调用action中的方法，将正文文档转换为pdf
        if(convertDocToPdf(id)==false){
            return false;
        }
    }
    // 生成黑头的文档
    //clearAllRedColor();
    //docFileType="ZW_BLACKHEAD";
    //发文的时候才会生成，排除其他等流程生成
    if($("#wfDefineInfo\\.wfTypeLib\\.id").val()==="0" || $("#wfDefineInfo\\.wfTypeLib\\.id").val()==="20" || $("#wfDefineInfo\\.wfTypeLib\\.id").val()==="22"){
    	clearRedHeadText();	//去红头
        docFileType="ZW_CLEARHEAD";
        if(saveDocFile()==false){
            alert("生成去红头的正式文档失败!");
            return false;
        }
    }

    return true;
}

/**
 * 删除历史文档。本方法已不再使用！！！
 *
 * @param {int} dataId
 */
function removeHistoryDoc(dataId){
    var isRight = true;
    $.ajax({
        type: "POST",
        dataType:"json",
        async:false,
        url: "docFileAction!removeHistoryDoc.shtml",
        data: {
            "dataTable"		:	"WF_ENTITY",		// 流程实例库
            "type"			:	"ZW_DRAFT",			// 删除历史草稿文档
            "dataId"		:	dataId				// 本流程实例的dataId
        },
        success: function(data){
            if(typeof(data.fail)!="undefined"){
                alert("删除历史草稿文档时出错:" + data.fail);
                isRight = false;
                return false;
            }else{
                isRight = true;
                return true;
            }
        },
        error:function (XMLHttpRequest, textStatus, errorThrown) {
            alert(JSON.encode(errorThrown));
            alert("删除历史草稿文档时出错！");
            isRight = false;
            return false;
        }
    });
    return isRight;
}

/**
 * 将正式的office文档转换为pdf
 *
 * @param {int} dataId
 */
function convertDocToPdf(dataId){
    var isRight = true;
    $.ajax({
        type: "POST",
        dataType:"json",
        async:false,
        url: "docFileAction!convertDocToPdf.shtml",
        data: {
            "dataTable"		:	"WF_ENTITY",		// 流程实例库
            "type"			:	"ZW",				// 正式文档
            "convertedType"	:	"ZW_PDF",			// 保存文档的类型为ZW_PDF
            "dataId"		:	dataId				// 本流程实例的dataId
        },
        success: function(data){
            if(typeof(data.fail)!="undefined"){
                alert("将office文档转换为pdf时出错:" + data.fail);
                isRight = false;
                return false;
            }else{
                isRight = true;
                return true;
            }
        },
        error:function (XMLHttpRequest, textStatus, errorThrown) {
            alert("将office文档转换为pdf时出错！");
            isRight = false;
            return false;
        }
    });
    return isRight;
}

/**
 *	点击最多一星期-事项延期
 */
function opt_weekDelay(){
	opt_weekApplyPre('1');
}

/**
 *	点击最多一星期-事项延期
 */
function opt_weekRefuse (){
	opt_weekApplyPre('2');
}

/**
 *	点击最多一星期-事项延期
 */
function opt_weekBack(){
	opt_weekApplyPre('5');
}

function opt_weekApplyPre(applyType) {
	var wfEntityId = $("#wfEntity\\.id").val()
	//	判断是否符合申请事项审核条件
	$.ajax({
        type: 		"POST",
        dataType:	"json",
        async:		false,
        url: 		_contextPath + "/weekReviewAction!preReview.shtml",
        data: {
        	"wfEntityId": wfEntityId,
        	"applyType": applyType,
        	"fromType": '2',
        },
        success: function(data){
        	if(typeof(data.fail)!="undefined"){
				openArgDialog('审核',data.fail);
				return;
			}
        	var recordId = data && data.recordId;
        	opt_openWeekDelay(applyType, recordId);
        },
        error:function (XMLHttpRequest, textStatus, errorThrown) {
        	
        }
    });
}

/**
 * 弹出申请延期的窗口
 * @returns
 */
function opt_openWeekDelay(applyType, recordId) {
	var param=new Array();
	param.push("applyType=" + applyType);
	param.push("recordId=" + recordId);
	param.push("fromType=2");
	artDialog.open(encodeURI("weekReviewAction!toReviewApply.shtml?"+param.join("&")),{
				title:	"事项延期",
				lock:	true,
				width: "60%",
				height: "60%",
				okVal:"提交",
				ok:		function(){
						var $obj = $(this.iframe.contentWindow.document);
						var formdata = $obj.find("form").serializeArray();
						var d = {};
						$.each(formdata, function() {
					       d[this.name] = this.value;
					    });
						var isRight = true;
						
						var check = checkApplyForm($obj);
						if(!check){
							return false;
						}
						
						// 保存数据
						$.ajax({
							type : "POST",
							url : "weekReviewAction!ajaxSave.shtml",
							data : d,
							success : function(data) {
								if(typeof(data.fail)!="undefined"){
									var message = "申请提交失败:" + data.fail;
									openArgDialog('申请审核',message);
									isRight = false;
									return false;
								}else{
									var message ="提交成功！";
									openArgDialog('申请审核',message);
								}
							},
							error : function(XMLHttpRequest, textStatus, errorThrown) { 
						        alert(XMLHttpRequest.status); 
						        alert(XMLHttpRequest.readyState); 
                                alert(textStatus); 
								isRight = false;
								var message ="申请提交失败!";
								openArgDialog('申请审核',message);
							}
						});
						return isRight;					
					},
				cancel:	true
			});
}

/**
 * 审核表单校验
 * @param obj
 * @returns
 */
function checkApplyForm($obj){
    var l = 0;
    if(typeof($obj.find("#weekReview\\.applyReason").eq(0).val())=="string"){
    	  l = $obj.find("#weekReview\\.applyReason").eq(0).val().length;
    }
    if(l>500){
    	alert("申请理由不能超过500个字符！");
    	return false;
    }
    if(l==0){
    	alert("申请理由不能为空");
    	return false;
    }
    var applyType = $obj.find("#weekReview\\.applyType").eq(0).val();
    if(applyType==1){
    	if($obj.find("#weekReview\\.delayDate").eq(0).val()=="" || $obj.find("#weekReview\\.delayDate").eq(0).val() == null){
	    	alert("申请延期时间不能为空");
	    	return false;
	    }
    }
    var reviewBy = $obj.find("#weekReview\\.reviewBy\\.id").eq(0).val();
    if(reviewBy==null || reviewBy=="" || typeof reviewBy== "undefined"){
    	alert("审核人不能为空");
    	return false;
    }
	return true;
}

function openArgDialog(title,message){
	if(title==null || title==""){
		title = "提示";
	}
	if(message==null || message==""){
		message = "错误";
	}
	artDialog({
	    title: title,
	    content: message,
	    lock: true,
	    ok: function(){
	    },
	    cancel:false
	});
}

/**
 * 传阅人提交意见
 */
function opt_commitForReaders() {
    document.forms[0].action = actName + '!commitForReaders.shtml';
    document.forms[0].submit();
}

/**
 * 校验收文流程是否已经存在
 */
function checkSwFlowExists(){

	var isContinue = true;
	var lwUnitCon="";
	var lwDocNumCon="";

	if($("#f_laiwenjiguan").length > 0){
		lwUnitCon = $("#f_laiwenjiguan").val();
	}

	if($("#f_laiwenwenhao").length > 0){
		lwDocNumCon = $("#f_laiwenwenhao").val();
	}

	$.ajax({
        type: 		"POST",
        dataType:	"json",
        async:		false,
        url: 		"wfEntityAction!ajaxCheckSwIsExists.shtml?r=" + Math.random(),
        data: {
            "lwUnitCon"	:	lwUnitCon,
            "lwDocNumCon"	:	lwDocNumCon
        },
        success: function(data){
            if(typeof(data.result)!="undefined" && data.result=="success"){

            	if(!confirm("相同来文单位和来文文号的收文已经存在，是否还需要保存？")){

            		isContinue = false;
            		return false;
            	}else{
            		isContinue = true;
            		return true;
            	}


            }else{
            	isContinue = true;
        		return true;
            }
        },
        error:function (XMLHttpRequest, textStatus, errorThrown) {
        	if(!confirm("根据来文单位和来文文号校验收文是否已经存在时出错,是否继续保存？")){

        		isContinue = false;
        		return false;
        	}else{
        		isContinue = true;
        		return true;
        	}
        }
    });

	return isContinue;
}

/**
 * 校验批示流程是否已经存在
 */
function checkPishiFlowExists(){

	var isContinue = true;
	var titleCon="";
	var fileDateCon="";
	var lwDocNumCon="";

	if($("#f_wenjianzhuti").length > 0){
		titleCon = $("#f_wenjianzhuti").val();
	}

	if($("#f_wenhao").length > 0){
		lwDocNumCon = $("#f_wenhao").val();
	}

	if($("#f_chengwenriqi").length > 0){
		fileDateCon = $("#f_chengwenriqi").val();
	}

	$.ajax({
        type: 		"POST",
        dataType:	"json",
        async:		false,
        url: 		"wfEntityAction!ajaxCheckPiShiIsExists.shtml?r=" + Math.random(),
        data: {
            "titleCon"		:	titleCon,
            "fileDateCon"	:	fileDateCon,
            "lwDocNumCon"	:	lwDocNumCon
        },
        success: function(data){
            if(typeof(data.result)!="undefined" && data.result=="success"){

            	if(!confirm("相同标题和成文日期或者文号的批示已经存在，是否还需要保存？")){

            		isContinue = false;
            		return false;
            	}else{
            		isContinue = true;
            		return true;
            	}


            }else{
            	isContinue = true;
        		return true;
            }
        },
        error:function (XMLHttpRequest, textStatus, errorThrown) {
            alert("根据标题、成文日期和文号校验批示是否已经存在时出错！");
            isContinue = true;
    		return true;
        }
    });

	return isContinue;
}

// 收文转批示处理
function opt_toNewPishi(){
	if(isEmpty($("#isHasMobileDraft").val()) || $("#isHasMobileDraft").val()=="false"){
		alert("当前文件尚无移动端传回的手写签批文件，无法转批示督查处理！");
        return;
	}

    if(isEmpty($("#wfEntity\\.id").val())){
        alert("需要转批示督查的流程ID不能为空！");
        return;
    }

    openWaitDialog("正在执行[转批示督查处理]功能，请您稍候.....");

   	$("form").eq(0).attr("action",actName + '!toDcdbPs.shtml');
	$("form").eq(0).submit();
}

// 收文转交办处理
function opt_toNewJiaoban(){
	if(isEmpty($("#isHasMobileDraft").val()) || $("#isHasMobileDraft").val()=="false"){
		alert("当前文件尚无移动端传回的手写签批文件，无法转交办督查处理！");
        return;
	}

    if(isEmpty($("#wfEntity\\.id").val())){
        alert("需要转交办督查的流程ID不能为空！");
        return;
    }

    openWaitDialog("正在执行[转交办督查处理]功能，请您稍候.....");

   	$("form").eq(0).attr("action",actName + '!toDcdbJb.shtml');
	$("form").eq(0).submit();
}

/**
 * 保存
 */
function opt_save() {

	// 校验批示流程是否已经存在
	if($("#wfDefineInfo\\.wfTypeLib\\.id").val()==5 && isEmpty($("#wfEntity\\.id").val())){

		if(!checkPishiFlowExists()){
			return;
		}

	}

	// 校验收文流程是否存在
	if($("#wfDefineInfo\\.wfTypeLib\\.id").val()==1 && isEmpty($("#wfEntity\\.id").val()) && $("#cur_orgId").val()==7){

		if(!checkSwFlowExists()){
			return;
		}

	}

    // 标题不能为空
    if($("[txtreservedomain=title]",$("div#divForm")).length>0){
        title = $("[txtreservedomain=title]",$("div#divForm")).val();
        if(title==null || title.trim()==""){
            var chName = $("[txtreservedomain=title]",$("div#divForm")).attr("txtchinesename");
            alert("标题内容：" + chName + "  不能为空，请你输入！");
            return;
        }
    }else{
        alert("表单中不存在类型为：'标题' 的表单域，不能生成表单数据。请管理员检查表单的设计是否正确！ ");
        return;
    }
    openWaitDialog("正在[保存]数据，请您稍候.....");

    // 将表单中的数据组装、序列化，并赋值给相应的表单元素，以便将值传递给后台
    $("div#divForm").zyFormSaveDataJSON("formDataJsonStr");
    if($("#formDataJsonStr").val().trim().length <= 2){	// 没有表单数据，则不可保存
        closeWaitDialog();
        return;
    }


    // 保存正文的文件
    var isHasSealPdf = $("#isHasSeal").val();
    var isHasSwSealPdf = $("#isHasSwSeal").val();
    if(!isEmpty(isHasSealPdf) && isHasSealPdf=="true"){

    }else{
    	
    	if(isHasSwSealPdf=="true" && $("#wfDefineInfo\\.wfTypeLib\\.id").val()=="1"){
    		
    	}else{
    		if(saveEntityFile()==false){
		        closeWaitDialog();
		        return	false;
		    }
    	}
    	
    }
    

    if(($("#wfStep\\.stepName").val()=="拟稿" || $("#wfStep\\.stepName").val()=="收文登记")  && $("#disFaWenDraftFlow").val().indexOf(","+$("#wfEntity\\.wfDefineInfo\\.id").val()+",")>=0){

    	if($("#fwngz").length > 0 && $("#disFaWenDraftFlow").val().indexOf(","+$("#wfEntity\\.wfDefineInfo\\.id").val()+",")>=0){
	    	//检测发文拟稿纸是否加载
			var iframeW = fwngz.window.document.all("TANGER_OCX");
			if(iframeW==null||iframeW=="" || iframeW=="undefined"){
			}else{
				//保存word文档
				if(!fwngz.window.saveDocFile()){
					return false;
				}
			}
    	}

    }else{

    	if($("#fwngz").length > 0 && $("#disFaWenDraftFlow").val().indexOf(","+$("#wfEntity\\.wfDefineInfo\\.id").val()+",")>=0){

    		//检测发文拟稿纸是否加载
    		var iframeW = fwngz.window.document.all("TANGER_OCX");
    		if(iframeW==null||iframeW=="" || iframeW=="undefined"){
    		}else{
    			//保存word文档
    			if(!fwngz.window.saveDocFile()){
    				return false;
    			}
    		}
    	}

    }

    // 不使用jquery的submit功能，以防止触发表单校验插件
    document.forms[0].action = actName + '!save.shtml';
    document.forms[0].submit();
}
/**
 * 修改
 */
function opt_modify() {
    // 修改
    $("form").eq(0).attr("action",actName + '!modify.shtml');
    $("form").eq(0).submit();
}


/**
 * 结束流程
 */
function opt_finish() {

    // 对原来的流程不做控制
    var defId = $("#wfEntity\\.wfDefineInfo\\.id").val()

    if (defId == '308') {
        if ($("#f_banlizhuangtai").val() != "办 结") {
            alert("请选择表单状态为办结");
            return false;
        }
    }

    if (!checkForm())
        return;

    // 标题不能为空
    if($("[txtreservedomain=title]",$("div#divForm")).length>0){
        title = $("[txtreservedomain=title]",$("div#divForm")).val();
        if(title==null || title.trim()==""){
            var chName = $("[txtreservedomain=title]",$("div#divForm")).attr("txtchinesename");
            alert("标题内容：" + chName + "  不能为空，请你输入！");
            return;
        }
    }else{
        alert("表单中不存在类型为：'标题' 的表单域，不能生成表单数据。请管理员检查表单的设计是否正确！ ");
        return;
    }

    //addDoResultMark("FINISH");

    openWaitDialog("正在[保存]数据，请您稍候.....");

    // 将表单中的数据组装、序列化，并赋值给相应的表单元素，以便将值传递给后台
    $("div#divForm").zyFormSaveDataJSON("formDataJsonStr");
    if($("#formDataJsonStr").val().trim().length <= 2){	// 没有表单数据，则不可保存
        closeWaitDialog();
        return;
    }

	var isHasSealPdf = $("#isHasSeal").val();
	if(isHasSealPdf=="true" && $("#wfDefineInfo\\.wfTypeLib\\.id").val()=="6"){
	}else{
		// 将草稿文档保存，并生成不带修改痕迹的正式文档，同时根据设置决定是否生成PDF文档
	    if(saveDocFileAndCreateNoReviewDoc()==false){	// 转换失败的话则返回
	        closeWaitDialog();
	        return;
	    }
	}
    

    // 不使用jquery的submit功能，以防止触发表单校验插件
    document.forms[0].action = actName + '!finish.shtml';
    document.forms[0].submit();

    return;
}

// 强制办结
function opt_toForceFinish(){
	
	if(confirm("您确定进行强制办结？强制办结后公文将不会进入公文库！！！")){
		
	}else{
		return false;
	}
	// 对原来的流程不做控制
    var defId = $("#wfEntity\\.wfDefineInfo\\.id").val()

    if (defId == '308') {
        if ($("#f_banlizhuangtai").val() != "办 结") {
            alert("请选择表单状态为办结");
            return false;
        }
    }

    if (!checkForm())
        return;

    // 标题不能为空
    if($("[txtreservedomain=title]",$("div#divForm")).length>0){
        title = $("[txtreservedomain=title]",$("div#divForm")).val();
        if(title==null || title.trim()==""){
            var chName = $("[txtreservedomain=title]",$("div#divForm")).attr("txtchinesename");
            alert("标题内容：" + chName + "  不能为空，请你输入！");
            return;
        }
    }else{
        alert("表单中不存在类型为：'标题' 的表单域，不能生成表单数据。请管理员检查表单的设计是否正确！ ");
        return;
    }

    openWaitDialog("正在[保存]数据，请您稍候.....");

    // 将表单中的数据组装、序列化，并赋值给相应的表单元素，以便将值传递给后台
    $("div#divForm").zyFormSaveDataJSON("formDataJsonStr");
    if($("#formDataJsonStr").val().trim().length <= 2){	// 没有表单数据，则不可保存
        closeWaitDialog();
        return;
    }

    // 将草稿文档保存，并生成不带修改痕迹的正式文档，同时根据设置决定是否生成PDF文档
    if(saveDocFileAndCreateNoReviewDoc()==false){	// 转换失败的话则返回
        closeWaitDialog();
        return;
    }

    // 不使用jquery的submit功能，以防止触发表单校验插件
    document.forms[0].action = actName + '!forceFinish.shtml';
    document.forms[0].submit();

    return;
    
}

// 直接归档
function opt_directArchive(){
	
	// 提示上传最终审签单
	if(confirm("请上传最终发文审签单！若已是最终版请按“是(Y)”，若需上传最终版请按“否(N)”！")){
		
		// 展示本单位所有发文流程的关联界面
		//dialog("关联公文查询", "id:optDirectArchive", "800px", "auto", "text");
		artDialog({
        		title:"关联公文查询",
                lock:true,
                width:	720,
                content:document.getElementById('optDirectArchive'),
        	    button: [
			        {
			            name: '上传<span style="color:#f00;font-weight:bold;">已盖公章正文</span>扫描件归档',
			            callback: function () {
			                this.close();
			                
							doUploadZw();
			            },
			            focus: true
			        },
			        {
			            name: '关闭我'
			        }
			    ]
        	});
	
	}else{
		return false;
	}
}

// dropUpload上传附件正文然后归档
function doUploadZw(){
	
	// 展示本单位所有发文流程的关联界面
    dialog("上传已盖公章正文扫描件归档", "id:optUploadZw", "800px", "auto", "text");
	
}

// dropUpload在IE下上传
function uploadFilehs(){

	var surl = "docFileAction!saveDocAjax.shtml?dataId=" + $("#wfEntity\\.docDataId").val() + "&dataTable=WF_ENTITY&type=ZW_PDF&newVer=0" +
	"&success=uploadDirectArchiveSuccess&fail=uploadFail";

	ajaxUpload(surl,"uploadFile");
}

function uploadDirectArchiveSuccess(type,id){
    
    alert("文件上传成功！");
    
    closeWaitDialog();
    
    // 对原来的流程不做控制
    var defId = $("#wfEntity\\.wfDefineInfo\\.id").val()

    if (defId == '308') {
        if ($("#f_banlizhuangtai").val() != "办 结") {
            alert("请选择表单状态为办结");
            return false;
        }
    }

    if (!checkForm())
        return;

    // 标题不能为空
    if($("[txtreservedomain=title]",$("div#divForm")).length>0){
        title = $("[txtreservedomain=title]",$("div#divForm")).val();
        if(title==null || title.trim()==""){
            var chName = $("[txtreservedomain=title]",$("div#divForm")).attr("txtchinesename");
            alert("标题内容：" + chName + "  不能为空，请你输入！");
            return;
        }
    }else{
        alert("表单中不存在类型为：'标题' 的表单域，不能生成表单数据。请管理员检查表单的设计是否正确！ ");
        return;
    }

    //addDoResultMark("FINISH");

    openWaitDialog("正在[保存]数据，请您稍候.....");

    // 将表单中的数据组装、序列化，并赋值给相应的表单元素，以便将值传递给后台
    $("div#divForm").zyFormSaveDataJSON("formDataJsonStr");
    if($("#formDataJsonStr").val().trim().length <= 2){	// 没有表单数据，则不可保存
        closeWaitDialog();
        return;
    }

    // 将草稿文档保存，并生成不带修改痕迹的正式文档，同时根据设置决定是否生成PDF文档
    if(saveDocFileForDAFinish()==false){	// 转换失败的话则返回
        closeWaitDialog();
        return;
    }

    // 不使用jquery的submit功能，以防止触发表单校验插件
    document.forms[0].action = actName + '!finish.shtml';
    document.forms[0].submit();

    return;
}

/**
 * 如果是OFFICE文档，保存草稿文档，并且同时生成不带修改痕迹的正式文档。
 * 根据表单设置，决定是否生成PDF文档。
 *
 * [发布]及[流程结束]时调用
 */
function saveDocFileForDAFinish(){
    // 非OFFICE文档，不需要保存，直接返回true
    if($("#wfEntity\\.editorType").val().toUpperCase()!="OFFICE"){
        return true;
    }

    // 如果编辑器类型为OFFICE,则需要保存word文档
    // 此处保存草稿文档，type = "ZW_DRAFT"
    docFileType = "ZW_DRAFT";
    if(saveDocFile()==false){
        return false;
    }

    // 生成不带修改痕迹的正式文档
    docFileType = "ZW";
    //删除文档中的所有注释包括墨迹
    TANGER_OCX_DeleteAllComments();
    // 接受所有的修订（生成不带痕迹的正式文档）
    if(TANGER_OCX_AcceptAllRevisions()==false){
        //alert("对草稿文档执行'接受所有的修订'功能时出错，不能生成不带修改痕迹的正式文档！");
        return;
    }

    // 将没有痕迹的正式文档进行保存
    if(saveDocFile()==false){
        //alert("生成不带修改痕迹的正式文档时不成功！");
        return false;
    }

    var id = $("#wfEntity\\.docDataId").val();

    // 删除历史的草稿文档
    /**		本功能已移到Publish.java中进行处理，页面上不再需要调用！！！
     if(removeHistoryDoc(id)==false){
		return false;
	}
     */

    // 生成黑头的文档
    //clearAllRedColor();
    //docFileType="ZW_BLACKHEAD";
    //发文的时候才会生成，排除其他等流程生成
    if($("#wfDefineInfo\\.wfTypeLib\\.id").val()==="0" || $("#wfDefineInfo\\.wfTypeLib\\.id").val()==="20" || $("#wfDefineInfo\\.wfTypeLib\\.id").val()==="22"){
    	clearRedHeadText();	//去红头
        docFileType="ZW_CLEARHEAD";
        if(saveDocFile()==false){
            alert("生成去红头的正式文档失败!");
            return false;
        }
    }

    return true;
}

/**
 * 关闭
 */
function opt_close(){
    window.close();
}


/*=============================================================================================
 * 					以下方法用于opt_addReplyObj()
 =============================================================================================*/
function opt_addReplyObj(){


	// 是否已生成了回复对象选择信息
    if(isEmpty($("table#stepAddReplyObjTbl>tbody").html().trim())){

    	//  表单数据随时会被更改，所以每次提交都要重新生成后续步骤信息
        // 生成后续步骤、预设步骤的html内容
        var nextStr = createCurStepContent();
        $("table#stepAddReplyObjTbl>tbody").html(nextStr.join(""));

    }

    dialog("环节信息", "id:optAddReplyObj", "800px", "auto", "text");

    return;
}

/**
 * 增加回复对象确定
 * @returns {Boolean}
 */
function addReplyObjOk(){

    if (!checkForm())
        return;

    // 本命令一定要执行，否则会导致下步骤处理人信息取不到值
    setDialogHide();

    openWaitDialog("正在[提交]数据，请您稍候.....");

    // 将表单中的数据组装、序列化，并赋值给相应的表单元素，以便将值传递给后台
    $("div#divForm").zyFormSaveDataJSON("formDataJsonStr");
    if(isEmpty($("#formDataJsonStr").val()) || $("#formDataJsonStr").val().length<=2){	// 没有生成表单数据，则不可生成下步骤
        closeWaitDialog();
        return;
    }

    // 取得当前步骤人员信息
    if(!getCurData()){
        closeWaitDialog();
        return;
    }

    // 因为在opt_commit已经对结束步骤的最后处理人进行了判断及相应处理，所以本方法处理的都不是结束步骤的最后处理人
    //		并且，系统的权限设置保证：不是步骤的最后处理人的话，是不会显示“提交”按钮的
    // 保存正文的文件
    if(saveEntityFile()==false){
        closeWaitDialog();
        return	false;
    }

    $("form").eq(0).attr("action",actName + '!addReplyObj.shtml');
    $("form").eq(0).submit();

}

//组装步骤人员信息
function getCurData() {

    var nextReplyObjIds			= new Array(); 		// 选定的下步骤回复对象Ids ,格式同nextExecuterIds
    var nextReplyObjNames		= new Array(); 		// 选定的下步骤回复对象names ,格式同nextExecuterIds
    var nextReplyObjType		= new Array(); 		// 选定的下步骤回复对象type ,格式同nextExecuterIds

    //标记处理下环节信息时是否正常 true表示正常 false表示异常
    var flag=true;


    // 取得回复对象数据。因为回复对象不需要分步骤，所以多步骤时，只放在最后一个步骤
    $("table#stepAddReplyObjTbl tbody tr[userType=replyObj]").each(function(){
        var stepId = $(this).attr("stepId");	// 步骤id
        // 取得抄送人数据
        if ($("#nextReplyObjId_" + stepId).length>0
            && $("#nextReplyObjId_" + stepId).val() != ""
            && $("#nextReplyObjName_" + stepId).length>0
            && $("#nextReplyObjName_" + stepId).val() != ""){
            // 人员id
            var vv = stepId + ":" + $("#nextReplyObjId_" + stepId).val();
            nextReplyObjIds.push(vv);
            // 人员姓名
            vv = stepId + ":" + $("#nextReplyObjName_" + stepId).val();
            nextReplyObjNames.push(vv);
            // 回复对象类型
            vv = stepId + ":" + $("#nextReplyObjType_" + stepId).val();
            nextReplyObjType.push(vv);
        }
    });


    // 增加的回复对象信息
    $("#wfEntityNextExecuteDTO\\.nextReplyObjType").val(nextReplyObjType.join(";"));
    $("#wfEntityNextExecuteDTO\\.nextReplyObjIds").val(nextReplyObjIds.join(";"));
    $("#wfEntityNextExecuteDTO\\.nextReplyObjNames").val(nextReplyObjNames.join(";"));

    // 是否带短信提醒、短信提醒内容
    //	$("#wfEntityNextExecuteDTO\\.isSendSms").val($("#isSendSms_commit").val());
    if($("input[id='isSendSms_commit']:checkbox").prop("checked")==true){
        $("#wfEntityNextExecuteDTO\\.isSendSms").val(1);
    }else{
        $("#wfEntityNextExecuteDTO\\.isSendSms").val(0);
    }
    $("#wfEntityNextExecuteDTO\\.smsContent").val($("#smsContent_commit").val());

    return flag;
}

/**
 * 生成当前步骤的增加回复对象信息的页面
 * @returns {Array}
 */
function createCurStepContent(){

    var isError = false;

    nextAndPreSetStepsObj = null;

    // 将表单的值填入到formDataJsonStr中
    $("div#divForm").zyFormSaveDataJSON("formDataJsonStr");
    if(isEmpty($("#formDataJsonStr").val())){	// 没有生成表单数据，则不可生成下步骤
        return;
    }


    // 调用取得后续步骤、预设步骤的action方法。使用“同步”调用的方式
    //	本方法返回的值中，传阅人、处理人已经是具体的人员。而不是流程定义时的内容
    $.ajax({
        type: 		"POST",
        dataType:	"json",
        async:		false,
        url: 		"wfEntityAction!getCurrentStepInfo.shtml?r=" + Math.random(),
        data: {
            "wfEntity.id"		:	$("#wfEntity\\.id").val(),
            "wfDefineInfo.id"	:	$("#wfDefineInfo\\.id").val(),
            "wfStep.stepId"		:	$("#wfStep\\.stepId").val(),
            "wfStep.stepName"	:	$("#wfStep\\.stepName").val(),
            "wfStep.status"		:	$("#wfStep\\.status").val(),
            "wfStep.createDateTime":$("#wfStep\\.createDateTime").val(),
            "formDataJsonStr"	:	$("#formDataJsonStr").val(),
            "formDefine.id"		:	$("#formDefine\\.id").val(),
            "wfStep.id"         :   $("#wfStep\\.id").val()
        },
        success: function(data){
            if(typeof(data.fail)!="undefined"){
                alert("取得当前步骤的详细信息时出错:" + data.fail);
                isError = true;
                return;
            }else{
                // 定义的当前步骤的后续步骤及预设步骤全局对象
            	curStepObj = data;
            }
        },
        error:function (XMLHttpRequest, textStatus, errorThrown) {
            alert("取得当前步骤的详细信息时出错！");
            isError = true;
            return;
        }
    });


    if(isError==true || curStepObj==null){
        return;
    }

    // 用于存放生成步骤信息的字符串
    var strArr = new Array();
    var step = null;

    var wfStatus = $("#wfEntity\\.status").val();	// 流程实例状态

    // 有后续步骤。生成后续的处理人及传阅人
    if(typeof(curStepObj.curStep)!="undefined" && curStepObj.curStep!=null){

    	//alert(JSON.encode(curStepObj.curStep));
    	step = curStepObj.curStep;
        var stepType = getStepTypeChName(step.type);

        strArr.push('<tr>');
        strArr.push('	<th colspan=4 align="left">');
        strArr.push('		当前步骤：' + $("#wfStep\\.stepName").val());
        strArr.push('		&nbsp;&nbsp;&nbsp;&nbsp;步骤类型：' + stepType);
        strArr.push('	</th>');
        strArr.push('</tr>');


        // 回复对象。因回复对象不需要分步骤，所以只要在最后一个步骤设置回复对象即可，对象的选择范围，用最后一个步骤的设置。
        var replayObjectType = step.replyObjType;
        var replyObjsArr = new Array();
        if(typeof(replayObjectType)!="undefined" && replayObjectType!=null && replayObjectType!="NONE"){
        	// 生成回复对象
        	replyObjsArr = createReplyObjContent(step,"replyObj");

        	strArr = strArr.concat(replyObjsArr);
        }
    }

    // 短信提醒信息
    strArr.push('<tr>');
    strArr.push('	<th colspan=2>是否带提醒短信：');
    strArr.push('		<input type="checkbox" id="isSendSms_commit" name="isSendSms_commit" value="1">');
    strArr.push('	</th>');
    strArr.push('	<td colspan=2>');
    strArr.push('		<input type="text" id="smsContent_commit" name="smsContent_commit" class="input_tx_gb" value="">');
    strArr.push('	</td>');
    strArr.push('</tr>');

    // 最后一行，用于设定每列的宽度
    strArr.push('<tr>');
    strArr.push('	<td class="empty" width="12%"></td>');
    strArr.push('	<td class="empty" width="12%"></td>');
    strArr.push('	<td class="empty" width="33%"></td>');
    strArr.push('	<td class="empty" width="33%"></td>');
    strArr.push('</tr>');

    return strArr;

}
/*=============================================================================================
 * 					以上方法用于opt_addReplyObj()
 =============================================================================================*/

/*=============================================================================================
 * 					以下方法用于opt_commit()
 =============================================================================================*/
/**
 * 选中后，扣分分值想默认为该项的分值
 */
function getChecked(obj){
//	alert($(obj).val());
//	alert($(obj).is(':checked'));
//	alert($(obj).attr("totalScore"));

	if($(obj).is(':checked')){

		$("#"+$(obj).val()).val($(obj).attr("totalScore"));
	}else{
		$("#"+$(obj).val()).val("");
	}
}

/**
 * 扣分项被填写为0的场合，取消选中
 * @param obj
 */
function checkZero(obj){

	if($(obj).val()=="" || $(obj).val()=="0"){
		$(obj).parents("tr").find("td:eq(1) input").attr("checked", false);
	}
}

/**
 * 提交。
 * 非步骤的最后处理人员执行提交：不出现选择后续步骤、处理人员的弹出窗口
 * 步骤的最后处理人员执行提交：会出现选择后续步骤、处理人员的弹出窗口
 */
function  opt_commit() {

    if (!checkForm())
        return;

    // 提示并要求选择“是否修正了正文电子稿”
    if($("#cur_orgId").val()=="7" && $("#wfStepUser\\.preDealerAddress").val()=="1" && $("#wfEntity\\.editorType").val().toUpperCase()=="OFFICE"){

    	// 弹出框显示提交内容
    	if(confirm("是否已修正正文电子稿？")){
    		$.ajax({
                type: 		"POST",
                dataType:	"json",
                async:		true,
                url: 		"wfStepUserAction!ajaxSaveIsUpdateZwFlg.shtml?r=" + Math.random(),
                data: {
                    "wfStepUser.id"		:	$("#wfStepUser\\.id").val(),
                    "isUpdateZw"        :   1
                },
                success: function(data){
                    if(typeof(data.fail)!="undefined"){
                        alert("保存是否已修正正文电子稿时出错:" + data.fail);
                        return;
                    }else{
                    	if(data.result=="fail"){
                    		 alert("保存是否已修正正文电子稿时出错:" + data.fail);
    	                     return;
                    	}
                    }
                }
            });
    	}else{
    		$.ajax({
                type: 		"POST",
                dataType:	"json",
                async:		true,
                url: 		"wfStepUserAction!ajaxSaveIsUpdateZwFlg.shtml?r=" + Math.random(),
                data: {
                    "wfStepUser.id"		:	$("#wfStepUser\\.id").val(),
                    "isUpdateZw"        :   0
                },
                success: function(data){
                    if(typeof(data.fail)!="undefined"){
                        alert("保存是否已修正正文电子稿时出错:" + data.fail);
                        return;
                    }else{
                    	if(data.result=="fail"){
                    		 alert("保存是否已修正正文电子稿时出错:" + data.fail);
    	                     return;
                    	}
                    }
                }
            });
    	}
    }

  //发文提交前先进行自我评价
    if($("#curStep\\.canSelfEvaluation").val()=="true"){

    	if(isEmpty($("#wfEntity\\.id").val())){
    		alert("本步骤需要进行自我评价，请先保存，然后重新提交，进行自评！");
    		return false;
    	}else{
    	 selfEvaluation();
    	}
    }else if($("#curStep\\.canEvaluation").val()=="true"){
    	evaluation();
    }else{
    	opt_commitLastDeal();
    }
}


//进行提交步骤选择前，先进行评分。
function evaluation(){
	
	if(isEmpty($("#wfEntity\\.id").val())){
		alert("本步骤需要对公文进行考评，请先保存，然后重新提交，进行考评！");
		return;
	}else{
    	// 从后台获取考评条目信息，并进行弹框操作
    	$.ajax({
            type: 		"POST",
            dataType:	"json",
            async:		false,
            url: 		"evaluationRecordAction!getEvaluationInfo.shtml?r=" + Math.random(),
            data: {
                "entityId"		:	$("#wfEntity\\.id").val(),
                "evaluationTypeId"              :   $("#curStep\\.evaluationTypeId").val()
            },
            success: function(data){
                if(typeof(data.fail)!="undefined"){
                    alert("获取当前流程对应的考评条目时出错:" + data.fail);
                    isError = true;
                    return;
                }else{

                	$("#firstEvaluation").val(data.newFlg);

                    // 组装评分页面
                	var psArr = new Array();

               		psArr.push('<tr>');
               		psArr.push('	<th align="center" style="width:70%">扣分项目</td>');
               		psArr.push('	<th align="center" style="width:10%">扣分</td>');
               		psArr.push('	<th align="center" style="width:10%">扣分分值</td>');
               		psArr.push('</tr>');
                	$.each(data.content,function(index,evaluationRecordDTO){
                		psArr.push('<tr>');
                   		psArr.push('	<td align="left">');
                   		psArr.push('	'+(index+1)+'.'+evaluationRecordDTO.evaluationItemsName+'(分值'+evaluationRecordDTO.score+'分)');
                   		psArr.push('	</td>');
                   		psArr.push('	<td align="center" >');
                   		if(evaluationRecordDTO.isCheck==1){
                   			if(data.newFlg=="YES"){
                   				psArr.push('		<input name="itemsKey" type="checkbox" totalScore="'+evaluationRecordDTO.score+'" onClick="getChecked(this);" value="'+evaluationRecordDTO.evaluationItemsId+'" checked>');
                   			}else{
                   				psArr.push('		<input name="itemsKey" type="checkbox" totalScore="'+evaluationRecordDTO.score+'" onClick="getChecked(this);" value="'+evaluationRecordDTO.id+'" checked>');
                   			}

                   		}else{
                   			if(data.newFlg=="YES"){
                   				psArr.push('		<input name="itemsKey" type="checkbox" totalScore="'+evaluationRecordDTO.score+'" onClick="getChecked(this);" value="'+evaluationRecordDTO.evaluationItemsId+'" >');
                   			}else{
                   				psArr.push('		<input name="itemsKey" type="checkbox" totalScore="'+evaluationRecordDTO.score+'" onClick="getChecked(this);" value="'+evaluationRecordDTO.id+'" >');
                   			}
                   		}
                   		psArr.push('	</td>');
                   		psArr.push('	<td>');
                   		if(typeof(evaluationRecordDTO.deductScore)!="undefined"){

                   			if(data.newFlg=="YES"){
                   				psArr.push('		<input name="deductScore" type="text" id="'+evaluationRecordDTO.evaluationItemsId+'" onBlur="checkZero(this);" value="'+evaluationRecordDTO.deductScore+'">');
                   			}else{
                   				psArr.push('		<input name="deductScore" type="text" id="'+evaluationRecordDTO.id+'" onBlur="checkZero(this);" value="'+evaluationRecordDTO.deductScore+'">');
                   			}

                   		}else{
                   			if(data.newFlg=="YES"){
                   				psArr.push('		<input name="deductScore" type="text" id="'+evaluationRecordDTO.evaluationItemsId+'" onBlur="checkZero(this);" value="">');
                   			}else{
                   				psArr.push('		<input name="deductScore" type="text" id="'+evaluationRecordDTO.id+'" onBlur="checkZero(this);" value="">');
                   			}
                   		}

                   		psArr.push('	</td>');
                   		psArr.push('</tr>');
    	        	});

                	$("#evaluationList").html(psArr.join(""));

                	artDialog({
                		title:"审核量化考评",
                        lock:true,
                        width:	720,
                        content:document.getElementById('optEvaluation'),
                        ok: function(){

                        	// 先校验填写的扣分分值
                        	var arrDeductScore=$("input[name='deductScore']");
                        	var isReturn = "NO";
                            $(arrDeductScore).each(function(){

                            	if(!isEmpty(this.value)){
                            		//alert("1111");^\d+(\.\d{2})?$
                            		if(!(/^\d+(\.\d{2})?$/.test(this.value)) && !(/^\d+(\.\d{1})?$/.test(this.value))){
                                		isReturn = "YES";
                                	}
                            	}

                            });

                            if(isReturn=="YES"){
                            	alert("扣分分值必须是正整数！");
                        	    return false;
                            }
                        	this.close();

                	    	evaluationOk();
                	    }
                	});
                }
            },
            error:function (XMLHttpRequest, textStatus, errorThrown) {
                alert("获取当前流程对应的考评条目时出错！");
                isError = true;
                return;
            }
        });
	}
}


/**
 * 提交的统一处理
 */
function opt_commitLastDeal(){

	// 校验公文上报流程是否已经生产盖章的版式文件
	if($("#wfDefineInfo\\.wfTypeLib\\.id").val()==6 && $("#wfStep\\.stepName").val()=="上报公文"){

		// 先提醒如果是规范性文件，则要先提交法制办审核
		if(confirm("提醒：请先确认是否规范性文件，如是请先提交法制办审核！")){
			
			$("#f_shifouguifanxingwenjian").val("是");
			//return false;
		}
		var isHasSeal = $("#isHasSeal").val();
		//alert(isHasSeal);
		if(!isEmpty(isHasSeal) && isHasSeal=="true"){
		}else{
			alert("请先加盖本单位的电子公章！");
			return;
		}

	}
	
	// 校验批示流程是否已经存在
	if($("#wfDefineInfo\\.wfTypeLib\\.id").val()==5 && isEmpty($("#wfEntity\\.id").val())){

		if(!checkPishiFlowExists()){
			return;
		}

	}

	// 校验批示编号/ 批示日期
	if($("#wfDefineInfo\\.wfTypeLib\\.id").val()==5 && $("#wfDefineInfo\\.id").val()==308){

		var bianhaovalidate = $("#f_bianhao").val();
		var regx = /^([\u4e00-\u9fa5]{2,3}2[0-1][1-9][1-9]第[0-9]{4}号)?$/;
		var result = regx.test(bianhaovalidate);
		if (!result) {
			alert("请输入正确的编号！参考格式：某某2015第0001号 ");
			return false;
		}

        var qianpiriqivalidate = $("#f_qianpiriqi").val();
        if (qianpiriqivalidate == "") {
            alert("请输入签批日期！");
            return false;
        }
        var regxqianpiriqi = /^(2[0-1][1-9][1-9]年[0-9]{1,2}月[0-9]{1,2}日)/;
        var resultriqi = regxqianpiriqi.test(qianpiriqivalidate);
        if (!resultriqi) {
            alert("请输入正确的签批日期！参考格式：2015年01月10日 ");
            return false;
        }

        var fqjValidate = $("#fqbSetCheck").val();
        var banlishixian = $("#f_banlishixian").val();
        if (fqjValidate == "" && banlishixian == 5) {
            alert("你创建的批示为分期批示，请保存该批示，而后进行期数设置，再提交！");
            return false;
        }
        if (fqjValidate == '0') {
            alert("分期件需要先设置分期！");
            return false;
        }
	}

	// 校验收文流程是否存在
	if($("#wfDefineInfo\\.wfTypeLib\\.id").val()==1 && isEmpty($("#wfEntity\\.id").val()) && $("#cur_orgId").val()==7){

		if(!checkSwFlowExists()){
			return;
		}

	}

	// 发文特殊校验
	if(($("#wfDefineInfo\\.wfTypeLib\\.id").val()==0 || $("#wfDefineInfo\\.wfTypeLib\\.id").val()==20 || $("#wfDefineInfo\\.wfTypeLib\\.id").val()==22) && $("#wfStep\\.stepName").val()=="处室审核"){

		if(!confirm("您是否已在发文拟稿纸上签批处理意见？")){

			return;
		}

	}

    if(!executeMergerFile("commit")) return;	//针对批示流程中word文件合并的操作
	if($("#f_chengbanqixian").length>0 && isNaN($("#f_chengbanqixian").val())){
		alert("承办期限不能包含中文，填写纯数字即可！");
		return;
	}
	//if($("#wfStep\\.stepName").val()==="印发" && endStepValidDocNumExists() ) {
		//alert("当前的机关代字编号已被使用，请修改后再提交!");
	//	return;
	//}
    // 是否公开选择不公开的时候，不公开理由必填
    if($("#f_shifougongkai").length > 0 && $("#f_shifougongkai").val()=="否"){

    	if($("#f_bugongkailiyou").length > 0 && $("#f_bugongkailiyou").val()==""){
    		alert("对于该文件您选择了不公开，请填写不公开理由！");
    		return false;
    	}
    }
    if(!isExistsPublishUser()) return false;

    // 是否规范性文件选择是的时候，法制办和公开办法制办审核，必填规范性文件号
	if($("#wfStep\\.stepName").val()=="印发" && $("#f_shifouguifanxingwenjian").length > 0 && $("#f_shifouguifanxingwenjian").val()=="是" && $("#f_guifanxingwenjianhao").length > 0 && $("#f_guifanxingwenjianhao").val()==""){

		alert("对于该文件您选择了规范性文件，请填写规范性文件号！");
		return false;
	}else{
		if (($("#isWfStepEndExecuter").val()==1 && $("#isEndStep").val()==0)					// 步骤的最后一个处理人，但不是在结束步骤。需要选择后续步骤处理人员
		        || ($("#wfType").val().toUpperCase()=="FREE"
		        && $("#curStep\\.canAddExecuters").val().toLowerCase()=="true")) {		// 	或是：自由流程，且步骤定义为可以自由增加处理人

			if($("#wfStep\\.stepName").val()=="公开办审核"){
				// 是否公开的判断
	    	    // 1、先判断是否存在“是否公开”这个域
	    		if(jQuery("#f_shifougongkai").length > 0){
	    			// 2、判断是否只读
	    			if($("#f_shifougongkai").attr("disabled")==undefined || $("#f_shifougongkai").attr("disabled")!="disabled"){
	    				// 3、判断是否公开的选择是不是“是”
	    			  	if(jQuery("#f_shifougongkai option:selected").val()=="否"){
	    			  		if(confirm("该文档拟不主动公开，是否同意?")){
	    			  			//jQuery("#f_shifougongkai option:selected").val("否");
	    			  			$("#f_shifougongkai").get(0).selectedIndex=1;
	    			  			TANGER_OCX_OBJ.SetBookmarkValue("公开标志","");
	    			  		    //此处要做后台的记录
	    			  			savePublicOption($("#wfEntity\\.id").val(),$("#wfStep\\.id").val(),$("#cur_userId").val(),"不同意公开",1);
	    			  		}else{
	    			  			// TODO 修改流程定义注释掉的flagIsGongKai = 1;
	    			  			$("#f_shifougongkai").get(0).selectedIndex=0;
	    			  			TANGER_OCX_OBJ.SetBookmarkValue("公开标志","此件公开发布");
	    			  		    //此处要做后台的记录
	    			  			savePublicOption($("#wfEntity\\.id").val(),$("#wfStep\\.id").val(),$("#cur_userId").val(),"同意公开",1);
	    			  		}
	    			  	}
	    			}
	    		}
			}

			if($("#wfStep\\.stepName").val()=="法制办审核"){
				// 是否规范性文件
	    		// 1、先判断是否存在“是否规范性文件”这个域
	    		if(jQuery("#f_shifouguifanxingwenjian").length > 0){
	    			// 2、判断是否只读
	    			if($("#f_shifouguifanxingwenjian").attr("disabled")==undefined || $("#f_shifouguifanxingwenjian").attr("disabled")!="disabled"){
	    				// 3、判断是否规范性文件的选择是不是“是”
	    				if(jQuery("#f_shifouguifanxingwenjian option:selected").val()=="是"){
	    					if(!confirm("该文档选择了属于规范性文件，是否同意?")){
	    						//jQuery("#f_shifouguifanxingwenjian option:selected").val("否");
	    						$("#f_shifouguifanxingwenjian").get(0).selectedIndex=1;
	    						//此处要做后台的记录
	    			  			savePublicOption($("#wfEntity\\.id").val(),$("#wfStep\\.id").val(),$("#cur_userId").val(),"不同意",2);
	    					}else{

	    						//此处要做后台的记录
	    			  			savePublicOption($("#wfEntity\\.id").val(),$("#wfStep\\.id").val(),$("#cur_userId").val(),"同意",2);
	    					}
	    				}
	    			}
	    		}
			}

			if($("#wfStep\\.stepName").val()=="定密人员审核"){
				// 是否公开的判断
	    	    // 1、先判断是否存在“是否公开”这个域
	    		if(jQuery("#f_shifougongkai").length > 0){
	    			// 2、判断是否只读
	    			if($("#f_shifougongkai").attr("disabled")==undefined || $("#f_shifougongkai").attr("disabled")!="disabled"){
	    				// 3、判断是否公开的选择是不是“是”
	    			  	if(jQuery("#f_shifougongkai option:selected").val()=="是"){
	    			  		if(!confirm("该文档选择了公开并上网发布，是否同意?")){
	    			  			//jQuery("#f_shifougongkai option:selected").val("否");
	    			  			$("#f_shifougongkai").get(0).selectedIndex=1;
	    			  			TANGER_OCX_OBJ.SetBookmarkValue("公开标志","");
	    			  		    //此处要做后台的记录
	    			  			savePublicOption($("#wfEntity\\.id").val(),$("#wfStep\\.id").val(),$("#cur_userId").val(),"不同意公开",1);
	    			  		}else{
	    			  			// TODO 修改流程定义注释掉的flagIsGongKai = 1;
	    			  		    //此处要做后台的记录
	    			  			savePublicOption($("#wfEntity\\.id").val(),$("#wfStep\\.id").val(),$("#cur_userId").val(),"同意公开",1);
	    			  		}
	    			  	}
	    			}
	    		}
			}
		    	// 是否已生成了后续步骤信息
		        if(isEmpty($("table#nextStepsTbl>tbody").html().trim())
		            ||	(nextAndPreSetStepsObj!=null && nextAndPreSetStepsObj.curStepType.toUpperCase()=="BRANCH")
		            ||	(nextAndPreSetStepsObj!=null && nextAndPreSetStepsObj.curStepType.toUpperCase()=="START")){	// 因为分支(开始)会根据表单元素值的不同，进入不同的后续步骤

		        	//  表单数据随时会被更改，所以每次提交都要重新生成后续步骤信息
		            // 生成后续步骤、预设步骤的html内容
		            var nextStr = createNextAndPreSetStepsContent();
		            $("table#nextStepsTbl>tbody").html(nextStr.join(""));

		            // 生成常用意见
		            $("select#suggest2").fillWithDictName("suggest");

					//添加批示 拟稿直接发布到办理部门，办理部门直接提交的时候，自动选择创建人
		            // TODO 吴国算注释@20150709 老版批示流程停用，相关个性化配置去除【开始】
//					if($("#wfDefineInfo\\.wfTypeLib\\.id").val()==5
//						&&!isEmpty($("#wfStepUser\\.wfStep\\.id").val())
//						&& $("#wfStepPrev\\.stepId").val()=="node_start"
//						&& $("#wfStep\\.stepName").val()=="办理部门"){
//						//$("#selectNextStep").val("node_30").trigger("onchange");
//						var options=$("option",$("#selectNextStep"));
//						var selected="";
//						$.each(options,function(){
//							if($(this).text()==="创建人"){
//								selected=$(this).val();
//							}
//						});
//						$("#selectNextStep").val(selected).trigger("onchange");
//					}
		         // TODO 吴国算注释@20150709 老版批示流程停用，相关个性化配置去除【结束】
		        }

		        // 将页面上的意见内容复制到提交框中
		        $("textarea#wfStepUser_opinion").val($("textarea#wfStepUser\\.opinion").val());

		        // 将页面上隐藏域的小贴士内容，复制到提交框的小贴士内容中
		        $("textarea#wfTips_content").val($("#wfEntityNextExecuteDTO\\.tipsContent").val());


		        // 取得本流程实例的标题，以生成短信提醒内容
		        var title = getFormTitle(true);
		        if(isEmpty(title)==true)	return;
		        var gwType = "公文";
		        if ($("#wfDefineInfo\\.wfTypeLib\\.id").val()==5) {
		            gwType = "批示";
		        }
		        sms = "您有一条待办" + gwType + "《" + title + "》需要处理！";	// 如果是会议通知，应该是：<会议名称>,请参加。
		        $("#smsContent_commit").val(sms);


		        dialog("环节信息", "id:optCommit", "800px", "auto", "text");

		    } else {
		        // 固定流程、自由流程的最后一个步骤，提交后都结束，所以不需要再分固定流程或是自由流程
		        //		如果自由流程用户还不想结束，请用户操作退回、请示等改变流程的操作
		        //			自由流程的结束步骤，不应该定义有出路径
		        if ($("#isEndStep").val() == 0
		            && $("#isWfStepEndExecuter").val() == 1
		            && $("#wfEntityNextExecuteDTO\\.nextExecuterIds").val() == "") {	// 非结束步骤的最后一个处理人，要求其选择下步骤的处理人
		            alert("请选择下步骤处理人信息2");
		            return;
		        } else {


		            if ($("#isEndStep").val()==1	&& $("#isWfStepEndExecuter").val()==1){

		                //进入流程最后一步使，校验机关代字文号是否存在
		                if( endStepValidDocNumExists() ) return;

		                if(confirm("你是结束步骤的最后一个处理人，提交后将结束本流程。你确认要提交吗？")==false){

		                    return;
		                }
		                // 可以发布，且能执行发布功能，则提醒用户是否要执行发布
		                if(isCanPublish==true && confirm("你是否需要选择发布对象，以便相应的人员能查看本文档？")==true){
		                    // 调用发布的功能及弹出窗口
		                    opt_publish();
		                    return;
		                }
		                // 将草稿文档保存，并生成不带修改痕迹的正式文档，同时根据设置决定是否生成PDF文档
		                if(saveDocFileAndCreateNoReviewDoc()==false){	// 转换失败的话则返回
		                    return;
		                }
		            }else{
		            	if(! isExistsPublishUser()){
		            		return;
		            	}
		            	if(checkFeedback("wfStepUser\\.opinion")){
		            		return;
		            	}

		            	// TODO 修改流程定义注释掉的
		            	// 此处注意，在设置公开办法制办的岗位时，人员的先后顺序也一定要一致（先公开办再法制办，并且是串行）
		            	// 除了分管秘书长（主任）审核步骤外，其他步骤再提交按钮出来的界面上点击确定时，再做判断(此时只做是否公开的判断)
		            	// 获取当前步骤并判断当前步骤是不是：“分管秘书长（主任）审核”步骤
		            	if(
		            		($("#cur_orgId").val()==="7" && ($("#wfStep\\.stepName").val()=="处室审核" || $("#wfStep\\.stepName").val()=="分管秘书长（主任）审核"))
		            		||($("#cur_orgId").val()==="8" && ( $("#wfStep\\.stepName").val()=="处室审核" ||$("#wfStep\\.stepName").val()=="分管秘书处副主任审核"  ))){

		            			// 是否公开的判断
			            	    // 1、先判断是否存在“是否公开”这个域
			            		if(jQuery("#f_shifougongkai").length > 0){
			            			// 2、判断是否只读
			            			if($("#f_shifougongkai").attr("disabled")==undefined || $("#f_shifougongkai").attr("disabled")!="disabled"){
			            				// 3、判断是否公开的选择是不是“是”
			            			  	if(jQuery("#f_shifougongkai option:selected").val()=="是"){
			            			  		if(!confirm("该文档选择了公开并上网发布，是否同意?")){
			            			  			$("#f_shifougongkai").get(0).selectedIndex=1;
			            			  			TANGER_OCX_OBJ.SetBookmarkValue("公开标志","");
			            			  			//此处要做后台的记录
			            			  			savePublicOption($("#wfEntity\\.id").val(),$("#wfStep\\.id").val(),$("#cur_userId").val(),"不同意公开",1);
			            			  		}else{
			            			  			//此处要做后台的记录
			            			  			savePublicOption($("#wfEntity\\.id").val(),$("#wfStep\\.id").val(),$("#cur_userId").val(),"同意公开",1);
			            			  		}
			            			  	}
			            			}
			            		}



			            		// 是否规范性文件的判断
			            	    // 1、先判断是否存在“是否规范性文件”这个域
			            		if(jQuery("#f_shifouguifanxingwenjian").length > 0){ //张基明
			            			// 2、判断是否只读
			            			if($("#f_shifouguifanxingwenjian").attr("disabled")==undefined || $("#f_shifouguifanxingwenjian").attr("disabled")!="disabled"){
			            				// 3、判断是否规范性文件的选择是不是“是”
			            			  	if(jQuery("#f_shifouguifanxingwenjian option:selected").val()=="是"){
			            			  		if(!confirm("该文档选择了属于规范性文件，是否同意?")){
			            			  			$("#f_shifouguifanxingwenjian").get(0).selectedIndex=1;
			            			  			//此处要做后台的记录
			            			  			savePublicOption($("#wfEntity\\.id").val(),$("#wfStep\\.id").val(),$("#cur_userId").val(),"不同意",2);
			            			  		}else{
			            			  			//此处要做后台的记录
			            			  			savePublicOption($("#wfEntity\\.id").val(),$("#wfStep\\.id").val(),$("#cur_userId").val(),"同意",2);
			            			  		}
			            			  	}
			            			}
			            		}

		            	}

		                // 不是步骤中的最后一个处理人，提交即结束当前用户的的处理工作
		                if(confirm("提交后将不能再修改数据，你确定要执行[提交]操作吗？")==false){
		                    return;
		                }
		                // 针对直接提交不通过commitOk的情况，设置意见
		                setWfStepUserOpinionValueByDirectCommit();
		                openWaitDialog("正在[提交]数据，请您稍候.....");
		                // 保存正文的文件
		                var isHasSealPdf = $("#isHasSeal").val();
					    var isHasSwSealPdf = $("#isHasSwSeal").val();
					    if(!isEmpty(isHasSealPdf) && isHasSealPdf=="true"){
					
					    }else{
					    	
					    	if(isHasSwSealPdf=="true" && $("#wfDefineInfo\\.wfTypeLib\\.id").val()=="1"){
					    		
					    	}else{
					    		if(saveEntityFile()==false){
							        closeWaitDialog();
							        return	false;
							    }
					    	}
					    	
					    }
		            }

		            if(($("#wfStep\\.stepName").val()=="拟稿" || $("#wfStep\\.stepName").val()=="收文登记" || $("#wfStep\\.stepName").val()=="批示登记")
                        && $("#disFaWenDraftFlow").val().indexOf(","+$("#wfEntity\\.wfDefineInfo\\.id").val()+",")>=0){
		            	if($("#fwngz").length > 0 && $("#disFaWenDraftFlow").val().indexOf(","+$("#wfEntity\\.wfDefineInfo\\.id").val()+",")>=0){
			            	//检测发文拟稿纸是否加载
							var iframeW = fwngz.window.document.all("TANGER_OCX");
							if(iframeW==null||iframeW=="" || iframeW=="undefined"){

								if($("#wfDefineInfo\\.wfTypeLib\\.id").val()==1){
									alert("收文处理单尚未加载，请点击显示收文处理单按钮，加载文件！");
								}else if($("#wfDefineInfo\\.wfTypeLib\\.id").val()==13){
									alert("事务审签单尚未加载，请点击显示事务审签单按钮，加载文件！");
								}else if($("#wfDefineInfo\\.wfTypeLib\\.id").val()==5){
									alert("批示办理单尚未加载，请点击显示批示办理单按钮，加载文件！");
								}else{
									alert("发文审签单尚未加载，请点击显示发文审签单按钮，加载文件！");
								}

							 	closeWaitDialog();
							 	return false;
							}
							//保存word文档
							if(!fwngz.window.saveDocFile()){
								closeWaitDialog();
								return false;
							}
		            	}
		            }else{

		            	if($("#fwngz").length > 0 && $("#disFaWenDraftFlow").val().indexOf(","+$("#wfEntity\\.wfDefineInfo\\.id").val()+",")>=0){

		            		//检测发文拟稿纸是否加载
		            		var iframeW = fwngz.window.document.all("TANGER_OCX");
		            		if(iframeW==null||iframeW=="" || iframeW=="undefined"){

		            		}else{
		            			//保存word文档
		            			if(!fwngz.window.saveDocFile()){
		            				return false;
		            			}
		            		}
		            	}

		            }

		            // 将表单中的数据组装、序列化，并赋值给相应的表单元素，以便将值传递给后台
		            $("div#divForm").zyFormSaveDataJSON("formDataJsonStr");
		            if(isEmpty($("#formDataJsonStr").val())){	// 没有生成表单数据，则不可生成下步骤
		                closeWaitDialog();
		                return;
		            }

		            $("form").eq(0).attr("action",actName + '!commit.shtml');
		            $("form").eq(0).submit();
		            //增加文号nextid
		            endStepIncreaseNextId();

		        }
		    }
	}

    return;
}

/**
 * 考评结束后，点击确定按钮
 */
function evaluationOk(){

	var evaluationResultIdChecks="";
	var evaluationResultDeductScore="";

	var arrChk=$("input[name='itemsKey']");
    $(arrChk).each(function(){
       if(isEmpty(evaluationResultIdChecks)){

    	   if(this.checked == false){
    		   evaluationResultIdChecks = this.value+",0";
    	   }else{
    		   evaluationResultIdChecks = this.value+",1";
    	   }
       }else{

    	   if(this.checked == false){
    		   evaluationResultIdChecks = evaluationResultIdChecks+";"+this.value+",0";
    	   }else{
    		   evaluationResultIdChecks = evaluationResultIdChecks+";"+this.value+",1";
    	   }
       }
    });

	var arrDeductScore=$("input[name='deductScore']");
    $(arrDeductScore).each(function(){

    	if(isEmpty(evaluationResultDeductScore)){
    		evaluationResultDeductScore = this.value+","+$(this).attr("id");
        }else{
        	evaluationResultDeductScore = evaluationResultDeductScore+";"+this.value+","+$(this).attr('id');
        }
    });

	// 将考评信息进行保存
	var url="./evaluationRecordAction!ajaxSaveEvaluationInfo.shtml?r=" + Math.random();
	$.getJSON(url,{"evaluationResultIdChecks":evaluationResultIdChecks,"evaluationResultDeductScore":evaluationResultDeductScore,"newFlg":$("#firstEvaluation").val(),"entityId":$("#wfEntity\\.id").val()},
			function(data){
				if(typeof(data.fail)!="undefined"){
					alert("保存考评信息时出错：" + data.fail);
					return;
				}

				if(data.result="success"){

					alert("保存成功！");
				}
	});

    opt_commitLastDeal();
}

/**
 * 克隆对象（即开辟先的内容区域，不再是传递引用，避免改变被赋值变量引起原变量值的改变）
 * @param myObj
 * @return
 */
function cloneObject(myObj){
    if(typeof(myObj) != 'object') return myObj;
    if(myObj == null) return myObj;

    var myNewObj = new Object();

    for(var i in myObj)
        myNewObj[i] = cloneObject(myObj[i]);

    return myNewObj;
}



/**
 * 生成后续步骤及预设步骤的html内容
 *
 * 范围类型
 *
 * <pre>
 * 常量代码	注释	值
 * ------------------------------------------
 * USER_USER	人员类型_个人	USER
 * USER_DEPT	人员类型_部门	DEPT
 * USER_GROUP	人员类型_岗位	GROUP
 * USER_ROLE	人员类型_角色	ROLE
 * USER_CREATER	人员类型_创建人	CREATER
 * USER_EXECUTERS	人员类型_已处理人	EXECUTERS
 * USER_READERS	人员类型_已传阅人	READERS
 * USER_CCUSERS	人员类型_已抄送人	CCUSERS
 * USER_ALL	人员类型_全体人员	ALL
 * USER_CONDITON	人员类型_条件	CONDITION
 * ------------------------------------------
 * </pre>
 *
 * @return Array()
 **/
function	createNextAndPreSetStepsContent(){
    var isError = false;

    nextAndPreSetStepsObj = null;

    // 将表单的值填入到formDataJsonStr中
    $("div#divForm").zyFormSaveDataJSON("formDataJsonStr");
    if(isEmpty($("#formDataJsonStr").val())){	// 没有生成表单数据，则不可生成下步骤
        return;
    }


    // 调用取得后续步骤、预设步骤的action方法。使用“同步”调用的方式
    //	本方法返回的值中，传阅人、处理人已经是具体的人员。而不是流程定义时的内容
    $.ajax({
        type: 		"POST",
        dataType:	"json",
        async:		false,
        url: 		"wfEntityAction!getNextStepsForCurrentStep.shtml?r=" + Math.random(),
        data: {
            "wfEntity.id"		:	$("#wfEntity\\.id").val(),
            "wfDefineInfo.id"	:	$("#wfDefineInfo\\.id").val(),
            "wfStep.stepId"		:	$("#wfStep\\.stepId").val(),
            "wfStep.stepName"	:	$("#wfStep\\.stepName").val(),
            "wfStep.status"		:	$("#wfStep\\.status").val(),
            "wfStep.createDateTime":$("#wfStep\\.createDateTime").val(),
            "formDataJsonStr"	:	$("#formDataJsonStr").val(),
            "formDefine.id"		:	$("#formDefine\\.id").val(),
            "wfStep.id"         :   $("#wfStep\\.id").val()
        },
        success: function(data){
            if(typeof(data.fail)!="undefined"){
                alert("取得当前步骤的下步骤时出错:" + data.fail);
                isError = true;
                return;
            }else{
                // 定义的当前步骤的后续步骤及预设步骤全局对象
                nextAndPreSetStepsObj = data;
            }
        },
        error:function (XMLHttpRequest, textStatus, errorThrown) {
            alert("取得当前步骤的下步骤时出错！");
            isError = true;
            return;
        }
    });
    /*
     * 	返回的json数据结构
     var obj = {
     "readType" : "RUNNING",
     "nextSteps" : [{
     "actions" : [],
     "executerRelation" : "SEQUENCE",
     "executerType" : "ALL",
     "executers" : "",
     "executersName" : "",
     "formFieldPerms" : [],
     "id" : "node_5",
     "inPaths" : [],
     "isAutoSendToExecuter" : false,
     "isAutoSendToReader" : false,
     "isPreSetNextStep" : false,
     "iteratorActions" : {},
     "iteratorFormFieldPerms" : {},
     "name" : "部门领导审核",
     "operatePerm" : null,
     "outPaths" : [],
     "postEvent" : null,
     "preEvent" : null,
     "preSetNextStepIds" : "",
     "preSetNextStepNames" : "",
     "readerType" : "USER",
     "readers" : "",
     "readersName" : "",
     "type" : "SEQUENCE",
     "executeMode" : "MANUAL",
     "stepsSelecteMode" : "ONE",
     "canAddExecuters" : false,
     "workFlow" : null
     }],
     "preSetSteps" : [],
     "curStepType" : "START",
     "curStepExecuteMode" : "MANUAL",
     "curStepStepsSelectMode" : "ONE",
     "curStepCanAddExecuters" : true,
     "isContainEndNode" : false
     };
     *
     */

    if(isError==true || nextAndPreSetStepsObj==null){
        return;
    }
    //alert("nextAndPreSetStepsObj::" + JSON.encode(nextAndPreSetStepsObj));
    // 用于存放生成步骤信息的字符串
    var strArr = new Array();
    var step = null;
    // 传阅人html格式数据
    var readersArr = new Array();
    // 抄送人html格式数据 add by wuguosuan@20140801 增加抄送人功能
    var ccUsersArr = new Array();
    // 流程的“文档传阅方式”
    var readType = nextAndPreSetStepsObj.readType.toUpperCase();
    if(typeof(readType)=="undefined" || readType==null){
        // 默认为没有传阅人
        readType = "NONE";
    }


    var wfStatus = $("#wfEntity\\.status").val();	// 流程实例状态


    // 有后续步骤。生成后续的处理人及传阅人
    if(typeof(nextAndPreSetStepsObj.nextSteps)!="undefined" && nextAndPreSetStepsObj.nextSteps!=null && nextAndPreSetStepsObj.nextSteps.length>0){
        // 是否可以选择传阅人
        var isCanSetReaders = false;
        // 是否可以选择抄送人
        var isCanSetCcUsers = false;
        if((readType=="RUNNING" && wfStatus=="RUNNING")
            || 	(readType=="END" && wfStatus=="FINISH")
            ||	(readType=="ANYWHERE")){
            isCanSetReaders = true;
            isCanSetCcUsers = true;
        }

        // 让用户选择处理人的步骤数量。默认为1。如果当前步骤是"并发"，则可以有多个
        var stepCount = 1;

        // 生成下一步骤的下拉选择框(此处的if..else..生成了提交后弹出的窗口的“当前步骤：。。。”这一行的信息)
        if(	($("#wfType").val().toUpperCase()=="FIXED" && nextAndPreSetStepsObj.curStepType.toUpperCase()=="FORK")						// 固定流程，"并发"步骤。用户需要设置全部步骤的处理人
            || ($("#wfType").val().toUpperCase()=="FREE" && nextAndPreSetStepsObj.curStepStepsSelectMode.toUpperCase()=="ALL")){	// 自由流程，“多步骤选择方式”=="ALL"
            stepCount = nextAndPreSetStepsObj.nextSteps.length;

            var stepType = getStepTypeChName(nextAndPreSetStepsObj.curStepType);

            strArr.push('<tr>');
            strArr.push('	<th colspan=4 align="left">');
            strArr.push('		当前步骤：' + $("#wfStep\\.stepName").val());
            strArr.push('		&nbsp;&nbsp;&nbsp;&nbsp;步骤类型：' + stepType);
            //alert($("#wfStep\\.stepName").val());
            if($("#wfStep\\.stepName").val()!="上报公文"){
            	strArr.push('		<span style="color: #f00;font-size:14px">&nbsp;&nbsp;是否移动端处理</span><input type="checkbox" id="isMobileDeal" name="isMobileDeal" value="1">');
            }
            // TODO 吴国算注释@20150709 老版批示流程停用，相关个性化配置去除【结束】
            strArr.push('	</th>');
            strArr.push('</tr>');

        }else{	// 非固定流程的"并发"类型的步骤，且不是自由流程的“多步骤选择”性质的步骤，则让用户从多个步骤中选择一个
            // 生成步骤选择下拉框
            var selectArr =		createSelectSteps(nextAndPreSetStepsObj.nextSteps);
            strArr = strArr.concat(selectArr);
            stepCount = 1;
        }

        // alert("nextAndPreSetStepsObj:" + JSON.encode(nextAndPreSetStepsObj));
        // 第二行：生成默认的后续步骤。包括处理人、传阅人信息。非"并发"步骤时，只会循环一次
        for(var i=0; i < stepCount; i++){
            // 	处理人
            step = nextAndPreSetStepsObj.nextSteps[i];
            //alert("type:" + $("#wfType").val() + "\r\n" + JSON.encode(step));
            // 自由流程的结束步骤，流程定义中环节窗口中属性tab中的处理方式为“ANY”或是“ALL”，则跳过
            if($("#wfType").val().toUpperCase()=="FREE" &&
                step.type.toUpperCase()=="END" &&
                (step.executeMode.toUpperCase()=="ANY" || step.executeMode.toUpperCase()=="ALL")){
                continue;
            }else{
                // 生成“选择处理人”的页面元素字符串数组
//				var stepTemp = cloneObject(step);
//				alert("进来了");
//				stepTemp.id="";
//				stepTemp.name="";
                var executerArr = createExecuterContent(step,"executer",isCanSetReaders);
                strArr = strArr.concat(executerArr);
            }

        }
        // 传阅人。因传阅人不需要分步骤，所以只要在最后一个步骤设置传阅人即可
        if(isCanSetReaders==true){
            // 生成“选择传阅人”的页面元素字符串数组
            readersArr = createReaderContent(step,"reader");
        }

        // 抄送人。因抄送人不需要分步骤，所以只要在最后一个步骤设置传阅人即可
        if(isCanSetCcUsers==true){
            // 生成“选择抄送人”的页面元素字符串数组
        	//alert(JSON.encode(step));
            ccUsersArr = createCcUserContent(step,"ccUser");
        }

        // 回复对象。因回复对象不需要分步骤，所以只要在最后一个步骤设置回复对象即可，对象的选择范围，用最后一个步骤的设置。
        var replayObjectType = step.replyObjType;
        var replyObjsArr = new Array();
        if(typeof(replayObjectType)!="undefined" && replayObjectType!=null && replayObjectType!="NONE"){
        	// 生成回复对象
        	replyObjsArr = createReplyObjContent(step,"replyObj");

        	strArr = strArr.concat(replyObjsArr);
        }
    }



    // 有预设步骤，生成预设步骤的处理人信息
    if(typeof(nextAndPreSetStepsObj.preSetSteps)!="undefined" && nextAndPreSetStepsObj.preSetSteps!=null && nextAndPreSetStepsObj.preSetSteps.length>0){
        strArr.push('<tr>');
        strArr.push('	<td colspan=4>以下为预设步骤信息</td>');
        strArr.push('</tr>');

        for(var i=0; i < nextAndPreSetStepsObj.preSetSteps.length; i++){
            //  取出一个步骤
            step = nextAndPreSetStepsObj.preSetSteps[i];
            // 处理人
            var executerArr = createExecuterContent(step,"preSetExecuter",isCanSetReaders);
            strArr = strArr.concat(executerArr);
//			// 传阅人。只需要设置在最后一个步骤上
//			if(isCanSetReaders==true){
//				var readerArr = createReaderContent(step,"preSetReader");
//				strArr = strArr.concat(readerArr);
//			}
        }
    }

    // 生成“选择传阅人”的页面元素字符串数组。提交页面只需要一个传阅人信息
    if(readersArr!=null && readersArr.length>0){
        strArr = strArr.concat(readersArr);
    }

    // 生成“选择抄送人”的页面元素字符串数组。提交页面只需要一个抄送人信息
    if(ccUsersArr!=null && ccUsersArr.length>0){
        strArr = strArr.concat(ccUsersArr);
    }


    // 共享人员(只有在特定流程才显示：批示流程的“批示登记”步骤)
    if($("#cur_orgId").val()=="7" && $("#wfDefineInfo\\.wfTypeLib\\.id").val()==5 && $("#wfStep\\.stepName").val()=="批示登记" && !isEmpty($("#wfEntity\\.id").val())){

	    	strArr.push('<tr>');
		    // 流程设计时，指定可以抄送，并且流程实例满足抄送状态
		    strArr.push('    <th colspan=2>');
		    strArr.push('    	共享人员<a  href="#" onClick="openReferenceM(\'SysUser\',\'userByGroupShare\',\'shareUserIds=value1&shareUserNames=value2&getSavedData=true\');return false;"> >> </a>');
		    strArr.push('    </th>');
		    strArr.push('    <td colspan=2" height="40px">');
		    // 存放选择的共享人员姓名
		    strArr.push('		<textarea  type="text" name="shareUserNames"	id="shareUserNames" class="textarea_gb" readonly style="height:40px;"></textarea>');
		    // 存放选择的共享人员id
		    strArr.push('		<input  type="hidden" name="shareUserIds"	id="shareUserIds" value="">');
		    strArr.push('    </td>');
		    strArr.push('</tr>');

    	    // 根据当前流程ID，获取其默认的共享人员ID
	    	$.ajax({
	            type: 		"POST",
	            dataType:	"json",
	            async:		true,
	            url: 		"wfEntityAction!ajaxGetDefaultShareUsers.shtml?r=" + Math.random(),
	            data: {
	                "wfEntityIdReader"		:	$("#wfEntity\\.id").val()
	            },
	            success: function(data){
	                if(typeof(data.fail)!="undefined"){
	                    alert("获取当前流程对应默认共享人员时出错:" + data.fail);
	                    return;
	                }else{
	                	if(data.result=="fail"){
	                		 alert("获取当前流程对应默认共享人员时出错:" + data.fail);
		                     return;
	                	}else if(data.result=="success"){
	                		 $("#shareUserIds").val(data.shareUserIds);
	                		 $("textarea#shareUserNames").val(data.shareUserNames);
	                	}
	                }
	            }
	        });
    }

    //处理意见
    //alert(opinion);
    strArr.push('<tr>');
    strArr.push('	<th colspan=2>处理意见：');
    strArr.push('		<a href="###" onclick="openReference(\'SysUserdefinfos\',\'suggest\',\'wfStepUser_opinion=value3\',\'refer\');">&gt;&gt;</a><br>');
    strArr.push('		<select id="suggest2" name="suggest2" class="suggest" title="请选择常用意见" target="wfStepUser_opinion"></select>');
    strArr.push('	</th>');
    strArr.push('	<td height="70" style="width:85%"  colspan=2 >');
    strArr.push('		<textarea id="wfStepUser_opinion"  name="wfStepUser_opinion" class="textarea_gb"></textarea>');
    strArr.push('	</td>');
    strArr.push('</tr>');

    //小贴士信息
    strArr.push('<tr>');
    strArr.push('	<th colspan=2>小贴士：');
    strArr.push('	</th>');
    strArr.push('	<td height="70" style="width:85%"  colspan=2 >');
    strArr.push('		<textarea id="wfTips_content"  name="wfTips_content" class="textarea_gb"></textarea>');
    strArr.push('	</td>');
    strArr.push('</tr>');

    // 短信提醒信息
    strArr.push('<tr>');
    strArr.push('	<th colspan=2>是否带提醒短信：');
    strArr.push('		<input type="checkbox" id="isSendSms_commit" name="isSendSms_commit" value="1" checked>');
    strArr.push('	</th>');
    strArr.push('	<td colspan=2>');
    strArr.push('		<input type="text" id="smsContent_commit" name="smsContent_commit" class="input_tx_gb" value="">');
    strArr.push('	</td>');
    strArr.push('</tr>');

    // 最后一行，用于设定每列的宽度
    strArr.push('<tr>');
    strArr.push('	<td class="empty" width="12%"></td>');
    strArr.push('	<td class="empty" width="12%"></td>');
    strArr.push('	<td class="empty" width="33%"></td>');
    strArr.push('	<td class="empty" width="33%"></td>');
    strArr.push('</tr>');
    //alert(strArr.join(""));
    return strArr;
}

/**
 * 取得表单中类型为“title”的值。即取得流程实例的标题
 *
 *
 * @param {boolean} isPromptInput	标题内容未填时，是否提示用户输入
 * @return {}
 */
function	getFormTitle(isPromptInput){
    var title = "";
    if($("[txtreservedomain=title]",$("div#divForm")).length>0){
        title = $("[txtreservedomain=title]",$("div#divForm")).val();
        if(typeof(isPromptInput)!="undefined" && isPromptInput==true){
            if(title==null || title.trim()==""){
                var chName = $("[txtreservedomain=title]",$("div#divForm")).attr("txtchinesename");
                alert("标题内容：" + chName + "  不能为空，请你输入！");
            }
        }
    }else{
        if(!isEmpty($("#wfEntity\\.name").val())){
            title = $("#wfEntity\\.name").val();
        }else{
            alert("表单中不存在类型为：'标题' 的表单域！ ");
        }
    }
    if(title==null)	title="";

    return title;
}
/**
 * 根据给定的步骤id,找到相应的后续步骤对象
 * @param string stepId
 * @return Step
 */
function	findStepFromNextStep(stepId){
    if(isEmpty(stepId)){
        return null;
    }
    if(nextAndPreSetStepsObj.nextSteps==null || nextAndPreSetStepsObj.nextSteps.length==0){
        return	null;
    }else{
        for(var i=0;i<nextAndPreSetStepsObj.nextSteps.length;i++){
            var step = nextAndPreSetStepsObj.nextSteps[i];
            if(step.id==stepId){
                return	step;
            }
        }
    }
    return	null;
}

/**
 * 根据给定的步骤id,找到相应的预设步骤对象
 * @param string stepId
 * @return Step
 */
function	findStepFromPreSetSteps(stepId){
    if(isEmpty(stepId)){
        return null;
    }
    if(nextAndPreSetStepsObj.preSetSteps==null || nextAndPreSetStepsObj.preSetSteps.length==0){
        return	null;
    }else{
        for(var i=0;i<nextAndPreSetStepsObj.preSetSteps.length;i++){
            if(nextAndPreSetStepsObj.preSetSteps[i].stepId==stepId){
                return	nextAndPreSetStepsObj.preSetSteps[i];
            }
        }
    }
    return	null;
}
/**
 * 找到结束步骤
 *
 * @return {}
 */
function	findEndStep(){
    for(var i=0;i<nextAndPreSetStepsObj.nextSteps.length;i++){
        if(nextAndPreSetStepsObj.nextSteps[i].type.toUpperCase()=="END"){
            return	nextAndPreSetStepsObj.nextSteps[i];
        }
    }
    return null;
}
/**
 * 生成下一步骤选择下拉框（并发步骤时不生成）
 *
 * @param Step[] nextSteps	候选步骤数组
 * @return Array()
 */
function	createSelectSteps(nextSteps){
    var step;
    var stepType = getStepTypeChName(nextAndPreSetStepsObj.curStepType);

    var strArr = new Array();
    // 第一行：生成步骤选择
    strArr.push('<tr>');
    strArr.push('	<th colspan=3 align="left">');
    strArr.push('		当前步骤：' + $("#wfStep\\.stepName").val());
    strArr.push('		&nbsp;&nbsp;&nbsp;&nbsp;步骤类型：' + stepType);
    //alert($("#wfStep\\.stepName").val());
    if($("#wfStep\\.stepName").val()!="上报公文"){
    	strArr.push('		<span style="color: #f00;font-size:14px">&nbsp;&nbsp;是否移动端处理</span><input type="checkbox" id="isMobileDeal" name="isMobileDeal" value="1">');
    }
 // TODO 吴国算注释@20150709 老版批示流程停用，相关个性化配置去除【开始】
    //    if($("#wfStep\\.stepName").val()=="登记处"){
//        //strArr.push('	<th>  ');
//        strArr.push('	&nbsp;<input type="button" style="cursor:hand" name="printBj" onclick="opt_printQingShi(\'SW_BJ\');return false;" value="打印办件"> ');
//        strArr.push('	<input type="button" style="cursor:hand" name="printYj" onclick="opt_printQingShi(\'SW_YJ\');return false;" value="打印阅件"> ');
//        strArr.push('	<input type="button" style="cursor:hand" name="printQsj" onclick="opt_printQingShi(\'SW_QSJ\');return false;" value="打印请示件"> ');
//        if($("#cur_orgId").val()==='7'){
//			strArr.push('	<input type="button" style="cursor:hand" name="printGwylw" onclick="opt_printQingShi(\'SW_GWYLW\');return false;" value="打印国务院来文"> ');
//		}
//        // 查看领导的手写件
//        var docFileBean = nextAndPreSetStepsObj.ldNbDocFile;
//        if(typeof(docFileBean)=="undefined" || docFileBean==null){
//
//        }else{
//        	var docType = docFileBean.type;
//        	if(typeof(docType)=="undefined" || docFileBean==null){
//
//            }else{
//            	if(docType=="SW_BJ_DRAFT"){
//            		strArr.push('	<input type="button" style="cursor:hand" name="printBjP" onclick="opt_printQingShi(\'SW_BJ_DRAFT\');return false;" value="查看领导拟办意见"> ');
//            	}else if(docType=="SW_YJ_DRAFT"){
//            		strArr.push('	<input type="button" style="cursor:hand" name="printYjP" onclick="opt_printQingShi(\'SW_YJ_DRAFT\');return false;" value="查看领导拟办意见"> ');
//            	}else if(docType=="SW_QSJ_DRAFT"){
//            		strArr.push('	<input type="button" style="cursor:hand" name="printQsjP" onclick="opt_printQingShi(\'SW_QSJ_DRAFT\');return false;" value="查看领导拟办意见"> ');
//            	}else if(docType=="SW_GWYLW_DRAFT"){
//            		strArr.push('	<input type="button" style="cursor:hand" name="printGwylwP" onclick="opt_printQingShi(\'SW_GWYLW_DRAFT\');return false;" value="查看领导拟办意见"> ');
//            	}
//            }
//        }
//        strArr.push('	</th> ');
//    }
 // TODO 吴国算注释@20150709 老版批示流程停用，相关个性化配置去除【结束】
    strArr.push('	</th>');
    strArr.push('	<th>下一步骤：');
    strArr.push('		<select name="selectNextStep" id="selectNextStep" onchange="changeNextStep(this);">');
    //strArr.push('		   <option value="" selected>请选择</option>');
    for(var i=0;i<nextSteps.length;i++){
        step = nextSteps[i];
        strArr.push('<option value="' + step.id + '"');
     // TODO 修改流程定义注释掉的
//        if(flagIsGongKai!=0){
//
//        	if(flagIsGongKai==1){
//        		if(step.name=="公开办审核"){
//        			strArr.push('	selected');
//        		}
//        	}else if(flagIsGongKai==2){
//        		if(step.name=="法制办审核"){
//        			strArr.push('	selected');
//        		}
//        	}else if(flagIsGongKai==3){
//        		if(step.name=="公开办法制办审核"){
//        			strArr.push('	selected');
//        		}
//        	}
//        }else{
        	if(i==0){	// 默认选中第一个步骤
                strArr.push('	selected');

                if(step.canMobileDeal){

                    setTimeout(function(){
                    	//$("#isMobileDeal").show();
                    	//$("#isMobileDealText").show();
                    	//alert("jinlaile ");
                    	$("#isMobileDeal").attr("checked", true);
                    },500);

                }else{

                    setTimeout(function(){
                    	//$("#isMobileDeal").hide();
                    	//$("#isMobileDealText").hide();
                    	$("#isMobileDeal").attr("checked", false);
                    },500);

                }

            }
             // TODO 修改流程定义注释掉的
        //}

        strArr.push('>'+ step.name + '</option>');
    }
    strArr.push('		</select>');
    strArr.push('	</th>');
    strArr.push('</tr>');


    return	strArr;
}
/**
 * 取得步骤类型的中文名称
 * @param {} stepTypeName
 * @return {}
 */
function getStepTypeChName(stepTypeName){
    var stepType = "开始";
    switch(stepTypeName.toUpperCase()){
        case	'START':
            stepType = "开始步骤";
            break;
        case	'END':
            stepType = "结束步骤";
            break;
        case	'SEQUENCE':
            stepType = "顺序步骤";
            break;
        case	'BRANCH':
            stepType = "分支步骤";
            break;
        case	'FORK':
            stepType = "并发步骤";
            break;
        case	'JOIN':
            stepType = "汇聚步骤";
            break;
        case	'SUBPROCESS':
            stepType = "子流程";
            break;
    }
    return stepType;
}

/**
 * 改变“下一步骤”选择框的值时，重新生成新选择的步骤的处理人、传阅人信息
 *
 * @param Element selectObj
 */
function changeNextStep(selectObj){

    var $ele = $("option:selected",$(selectObj));
    var stepId = $ele.val();
    var step = findStepFromNextStep(stepId);
    if(step==null){
        alert("id为:" + stepId + "  的后续步骤不存在！");
        return;
    }
    // 是否可以选择传阅人
    var isCanSetReaders = false;
    var isCanSetCcUsers = false;


    var readType = nextAndPreSetStepsObj.readType;
    if(typeof(readType)=="undefined" || readType==null){
        // 默认为没有传阅人
        readType = "NONE";
    }
    var wfStatus = $("#wfEntity\\.status").val();	// 流程实例状态

    if((readType=="RUNNING" && wfStatus=="RUNNING")
        || 	(readType=="END" && wfStatus=="FINISH")
        ||	(readType=="ANYWHERE")){
        isCanSetReaders = true;
        isCanSetCcUsers = true;
    }
    // 生成选择处理人的页面元素
    var es = createExecuterContent(step,"executer",isCanSetReaders);
    if(es==null){
        return;
    }else{
        $("table#nextStepsTbl>tbody>tr[userType=executer]").replaceWith(es.join(""));
    }
    // 生成选择传阅人的页面元素
    if(isCanSetReaders==true){
        es = createReaderContent(step,"reader");
        if(es==null){
            return;
        }else{
            if($("table#nextStepsTbl>tbody>tr[userType=reader]").length == 1){	// 传阅人元素已存在，直接替换
                $("table#nextStepsTbl>tbody>tr[userType=reader]").replaceWith(es.join(""));
            }else{	// 不存在传阅人元素，则将传阅人元素生成处理人元素之后
                $("table#nextStepsTbl>tbody>tr[userType=executer]").after(es.join(""));
            }
        }
    }
    // 生成选择抄送人的页面元素
    if(isCanSetCcUsers==true){
        es = createCcUserContent(step,"ccUser");
        if(es==null){
            return;
        }else{
            if($("table#nextStepsTbl>tbody>tr[userType=ccUser]").length == 1){	// 抄送人元素已存在，直接替换
                $("table#nextStepsTbl>tbody>tr[userType=ccUser]").replaceWith(es.join(""));
            }else{	// 不存在抄送人元素，则将抄送人元素生成处理人元素之后
                $("table#nextStepsTbl>tbody>tr[userType=executer]").after(es.join(""));
            }
        }
    }

    // 回复对象。因回复对象不需要分步骤，所以只要在最后一个步骤设置回复对象即可，对象的选择范围，用最后一个步骤的设置。
    var replayObjectType = step.replyObjType;
    var replyObjsArr = new Array();
    if(typeof(replayObjectType)!="undefined" && replayObjectType!=null && replayObjectType!="NONE"){
    	// 生成回复对象
    	replyObjsArr = createReplyObjContent(step,"replyObj");

    	if(replyObjsArr==null){
            return;
        }else{
            if($("table#nextStepsTbl>tbody>tr[userType=replyObj]").length == 1){	// 抄送人元素已存在，直接替换
                $("table#nextStepsTbl>tbody>tr[userType=replyObj]").replaceWith(replyObjsArr.join(""));
            }else{	// 不存在抄送人元素，则将抄送人元素生成处理人元素之后
                $("table#nextStepsTbl>tbody>tr[userType=executer]").after(replyObjsArr.join(""));
            }
        }
    }else{

    	if($("table#nextStepsTbl>tbody>tr[userType=replyObj]").length==1){
    		$("#replyObjStep").remove();
    	}
    }


    if(step.canMobileDeal){

    	//$("#isMobileDeal").show();
    	//$("#isMobileDealText").show();

    	$("#isMobileDeal").attr("checked", true);
    }else{
    	//$("#isMobileDeal").hide();
    	//$("#isMobileDealText").hide();
    	$("#isMobileDeal").attr("checked", false);
    }
}

/**
 * 生成“选择处理人”的页面元素字符串数组
 *
 * @param Step 		step			用于创建处理人的步骤
 * @param string	userType		人员类型
 * 									executer:后续步骤的处理人,preSetExecuter:预设步骤的处理人
 * @param boolean 	isCanSetReaders	是否需要选择传阅人
 * @return Array()
 */
function createExecuterContent(step,userType,isCanSetReaders)	{
    if(step==null){
        return null;
    }
    var strArr = new Array();
    strArr.push('<tr stepId="' + step.id + '" userType="' + userType + '" stepName="' + step.name + '">');	// 记录下步骤的id、名称
	//	if(isCanSetReaders==true){	// 是否需要选择传阅人
	//		strArr.push('	<th rowspan=2 class="stepName">' + step.name + '</th>');
	//	}else{
	//		strArr.push('	<th  class="stepName">' + step.name + '</th>');
	//	}

    //alert($("#curStep\\.priorDealStepIds").val()+"  "+step.id);
    if($("#curStep\\.priorDealStepIds").val()==step.id){
    	strArr.push('	<th  class="stepName" style="color:#f60; background-color:#fff4ef;">' + step.name + '</th>');
    }else{
    	strArr.push('	<th  class="stepName">' + step.name + '</th>');
    }

    if ($("#wfType").val().toUpperCase()=="FREE"
        && step.type.toUpperCase()=="END"
        && (step.executeMode.toUpperCase()=="ANY" || step.executeMode.toUpperCase()=="ALL")){	// 自由流程的结束步骤，且处理方式为“ANY”或“ALL”
        //		可以不选择处理人即进入结束步骤
        strArr.push('	<th></th>');
        if(step.executeMode.toUpperCase()=="ANY"){
            strArr.push('	<td colspan=2>结束步骤的处理类型为“任意步骤结束即流程结束”,不必设置处理人</td>');
        }else{
            strArr.push('	<td colspan=2>结束步骤的处理类型为“全部步骤结束才流程结束”,不必设置处理人</td>');
        }
    }else{
    	if($("#curStep\\.priorDealStepIds").val()==step.id){
    		strArr.push('	<th style="color:#f60; background-color:#fff4ef;">');
    	}else{
    		strArr.push('	<th>');
    	}

        strArr.push('		处理人<a  href="#" onClick="getRangeUser(\'executer\',\'' + step.id + '\',\'' + step.executers + '\');return false;"> >> </a>');
        strArr.push('	</th>');
        strArr.push('	<td colspan=2>');
        // 存放选择的处理人姓名
        strArr.push('		<textarea name="nextExecuterName_' + step.id + '"	id="nextExecuterName_' + step.id + '" class="textarea_gb" readonly style="height:40px;">');

        //  人员来源于表单元素时，自动生成人员信息		|| step.executerType=="FORM_ELEMENT"
        if(step.isAutoSendToExecuter==true){	// 选择了“自动传递给处理人”，则需要设置人员的姓名。选择“全体人员”的话，不会生成
        	strArr.push(step.executersName);
        // add zhouzz 20130418 增加针对批示流程中由办理部门提交给主办处室时，自动显示处理人为下发给办理部门的主办处室人员
        }
// 调整优化代码，使其具有通用性  modify by wuguosuan@20141024
//        else if($("#wfDefineInfo\\.wfTypeLib\\.id").val()==5
//	        		&&!isEmpty($("#wfStepUser\\.wfStep\\.id").val())
//	        		&& $("#wfStepPrev\\.stepId").val()!=="node_start"
//	        		&& $("#wfStep\\.stepName").val()=="办理部门"
//	        		&& step.name=="主办处室"){
//        	var stepCreaterName;
//        	//部门间的流程步骤，其他都是直接取个人
//        	if(step.executerType==="DEPTNOCHANGE"){
//        		stepCreaterName=$("#createrDeptName").val();
//        	}else{
//        		stepCreaterName=$("#wfStepUser\\.createrName").val();
//        	}
//            var nameArray=step.executersName.split(",");
//            if($.inArray(stepCreaterName,nameArray)!==-1){
//                strArr.push(stepCreaterName);
//            }
//        }
        strArr.push('</textarea>');
        // 存放选择的处理人id
        strArr.push('		<input  type="hidden" name="nextExecuterId_' + step.id + '"	id="nextExecuterId_' + step.id + '" value="');
        if(step.isAutoSendToExecuter==true){	// 选择了“自动传递给处理人”，则需要设置人员的id。选择“全体人员”的话，不会生成
        	strArr.push(step.executers);
        }
// 调整优化代码，使其具有通用性  modify by wuguosuan@20141024
//        else if($("#wfDefineInfo\\.wfTypeLib\\.id").val()==5
//	        		&&!isEmpty($("#wfStepUser\\.wfStep\\.id").val())
//	        		&& $("#wfStepPrev\\.stepId").val()!=="node_start"
//	        		&& $("#wfStep\\.stepName").val()=="办理部门"
//	        		&& step.name=="主办处室"){
//        	var stepCreaterId;
//        	if(step.executerType==="DEPTNOCHANGE"){
//        		stepCreaterId=$("#createrDeptId").val();
//        	}else{
//        		stepCreaterId=$("#wfStepUser\\.createrName").val();
//        	}
//            var idArray=step.executers.split(",");
//            if($.inArray(stepCreaterId,idArray)!==-1){
//                strArr.push(stepCreaterId);
//            }
//        }
        strArr.push('">');

        // 流程步骤信息中设置的可选处理人范围及值
        // 调用wfEntityAction!getNextStepsForCurrentStep.shtml时，返回的值已经是具体的人员了。所以类型是USER
        // 增加了直接选择部门和岗位的功能；；所以这两类也要区别出来
        //alert(step.executerType);
        if(step.executerType!="ALL" && step.executerType!="DEPTNOCHANGE" && step.executerType!="GROUPNOCHANGE" && step.executerType!="PRE_STEP_CREATER" && step.executerType!="DEPT_ALL_USER" && step.executerType!="UNDERTAKESTEP_DEALER"){
            step.executerType = "USER";
        }else if(step.executerType=="DEPTNOCHANGE"){
        	step.executerType = "DEPTNOCHANGE";
        }else if(step.executerType=="GROUPNOCHANGE"){
        	step.executerType = "GROUPNOCHANGE";
        }else if(step.executerType=="PRE_STEP_CREATER"){
        	step.executerType = "PRE_STEP_CREATER";
        	// 如果当前步骤时上一步骤创建人或部门，则设置隐藏变量
        	strArr.push('		<input type="hidden" name="dealerType_' + step.id + '" 		id="dealerType_' + step.id + '" value="' + step.dealerType +'">');
        }else if(step.executerType=="UNDERTAKESTEP_DEALER"){
        	step.executerType = "UNDERTAKESTEP_DEALER";
        	// 如果当前步骤是承办步骤最后处理人，则设置隐藏变量
        	strArr.push('		<input type="hidden" name="dealerType_' + step.id + '" 		id="dealerType_' + step.id + '" value="' + step.dealerType +'">');
        }else if(step.executerType=="DEPT_ALL_USER"){
        	step.executerType = "DEPT_ALL_USER";
        }

        strArr.push('		<input type="hidden" name="executersRangeType_' + step.id + '" 	id="executersRangeType_' + step.id + '" value="'+ step.executerType + '">');
        strArr.push('		<input type="hidden" name="executersRange_' + step.id + '" 		id="executersRange_' + step.id + '" value="' + step.executers +'">');
        // 步骤计划结束时间、处理人处理方式（串行、并行）
//        strArr.push('		<div style="float:left;">');
//        strArr.push('			计划结束时间：');
//        strArr.push('			<input type="text"  name="nextExpectLeaveDateTime_' + step.id + '" 	id="nextExpectLeaveDateTime_' + step.id + '" value="'+expectLeaveDateTime+'"  class="datePicker" onclick="WdatePicker({errDealMode:1,dateFmt:\'yyyy-MM-dd 16:00:00\'});" size="40">');
//        strArr.push('		</div>');
        strArr.push('		<div style="float:right;">');
        strArr.push('			人员关系：');
        strArr.push('			<input type="radio" name="nextExecuteMode_' + step.id + '" 		id="nextExecuteMode_' + step.id + '_SEQUENCE" value="SEQUENCE"' + (step.executerRelation=='SEQUENCE'?' checked':'') + '>串行&nbsp;&nbsp;');	// 串行
        strArr.push('			<input type="radio" name="nextExecuteMode_' + step.id + '" 		id="nextExecuteMode_' + step.id + '_PARALLED" value="PARALLED"' + (step.executerRelation=='PARALLED'?' checked':'') + '>并行&nbsp;&nbsp;');	// 并行
        //TODO:不显示竞争
        var orgId = $("#cur_orgId").val();
        if(!isEmpty(orgId) && orgId==12){
        	strArr.push('			<input type="radio" name="nextExecuteMode_' + step.id + '" 		id="nextExecuteMode_' + step.id + '_COMPETE" value="COMPETE"' + (step.executerRelation=='COMPETE'?' checked':'') + '>竞争');	// 竞争
        }
        //strArr.push('			<input type="radio" name="nextExecuteMode_' + step.id + '" 		id="nextExecuteMode_' + step.id + '_COMPETE" value="COMPETE"' + (step.executerRelation=='COMPETE'?' checked':'') + '>竞争');	// 竞争
        strArr.push('		</div>');
        strArr.push('	</td>');
    }

    strArr.push('</tr>');
    //alert("-----:"+strArr);
    return strArr;
}

/**
 * 生成“选择传阅人”的页面元素字符串数组
 *
 * @param Step 		step			用于创建传阅人的步骤
 * @param string	userTYpe		人员类型
 * 									reader:后续步骤的传阅人；preSetReader:预设步骤的传阅人
 * @return Array()
 */
function createReaderContent(step,userType)	{
    if(step==null){
        return null;
    }
    if ($("#wfType").val().toUpperCase()=="FREE"
        && step.type.toUpperCase()=="END"
        && (step.executeMode.toUpperCase()=="ANY" || step.executeMode.toUpperCase()=="ALL")){	// 自由流程的结束步骤，且处理方式为“ANY”或“ALL”，不可设置传阅人
        return null;
    }
    var strArr = new Array();

    strArr.push('<tr stepId="' + step.id + '" userType="' + userType + '">');	// 记录下步骤的id
    // 流程设计时，指定可以传阅，并且流程实例满足传阅状态
    strArr.push('    <th colspan=2>');
    strArr.push('    	传阅人<a  href="#" onClick="getRangeUser(\'reader\',\'' + step.id + '\',\'' + step.readers + '\');return false;"> >> </a>');
    strArr.push('    </th>');
    strArr.push('    <td colspan=2" height="40px">');
    // 存放选择的传阅人姓名
    strArr.push('		<textarea  type="text" name="nextReaderName_' + step.id + '"	id="nextReaderName_' + step.id + '" class="textarea_gb" readonly style="height:40px;">');
    if(step.isAutoSendToReader==true){	// 选择了“自动传递给传阅人”，则需要设置人员的姓名。选择“全体人员”的话，不会生成
        strArr.push(step.readersName);
    }
    strArr.push('</textarea>');
    // 存放选择的传阅人id
    strArr.push('		<input  type="hidden" name="nextReaderId_' + step.id + '"	id="nextReaderId_' + step.id + '" value="');
    if(step.isAutoSendToReader==true){	// 选择了“自动传递给传阅人”，则需要设置人员的id。选择“全体人员”的话，不会生成
        strArr.push(step.readers);
    }
    strArr.push('">');

    // 流程步骤信息中设置的可选处理人范围及值
    // 调用wfEntityAction!getNextStepsForCurrentStep.shtml时，返回的值已经是具体的人员了。所以类型是USER
    if(step.readerType!="ALL"){
        step.readerType = "USER";
    }

    strArr.push('		<input type="hidden" name="readersRangeType_' + step.id + '" 	id="readersRangeType_' + step.id + '" value="'+ step.readerType + '">');
    strArr.push('		<input type="hidden" name="readersRange_' + step.id + '" 		id="readersRange_' + step.id + '" value="' + step.readers +'">');

    strArr.push('    </td>');
    strArr.push('</tr>');

    return strArr;
}


/**
 * 生成“选择抄送人”的页面元素字符串数组
 *
 * @param Step 		step			用于创建抄送人的步骤
 * @param string	userTYpe		人员类型
 * 									ccUser:后续步骤的抄送人；preSetCcUser:预设步骤的抄送人
 * @return Array()
 */
function createCcUserContent(step,userType)	{
    if(step==null){
        return null;
    }
    if ($("#wfType").val().toUpperCase()=="FREE"
        && step.type.toUpperCase()=="END"
        && (step.executeMode.toUpperCase()=="ANY" || step.executeMode.toUpperCase()=="ALL")){	// 自由流程的结束步骤，且处理方式为“ANY”或“ALL”，不可设置抄送人
        return null;
    }
    var strArr = new Array();

    strArr.push('<tr stepId="' + step.id + '" userType="' + userType + '">');	// 记录下步骤的id
    // 流程设计时，指定可以抄送，并且流程实例满足抄送状态
    strArr.push('    <th colspan=2>');
    strArr.push('    	抄送人<a  href="#" onClick="getRangeUser(\'ccuser\',\'' + step.id + '\',\'' + step.ccUsers + '\');return false;"> >> </a>');
    strArr.push('    </th>');
    strArr.push('    <td colspan=2" height="40px">');
    // 存放选择的传阅人姓名
    strArr.push('		<textarea  type="text" name="nextCcUserName_' + step.id + '"	id="nextCcUserName_' + step.id + '" class="textarea_gb" readonly style="height:40px;">');

    strArr.push('</textarea>');
    // 存放选择的传阅人id
    strArr.push('		<input  type="hidden" name="nextCcUserId_' + step.id + '"	id="nextCcUserId_' + step.id + '" value="');
    strArr.push('">');

    // 流程步骤信息中设置的可选处理人范围及值
    // 调用wfEntityAction!getNextStepsForCurrentStep.shtml时，返回的值已经是具体的人员了。所以类型是USER
    if(step.ccUserType!="ALL" && step.ccUserType!="GROUP"){
        step.ccUserType = "USER";
    }


    strArr.push('		<input type="hidden" name="ccUsersRangeType_' + step.id + '" 	id="ccUsersRangeType_' + step.id + '" value="'+ step.ccUserType + '">');
    strArr.push('		<input type="hidden" name="ccUsersRange_' + step.id + '" 		id="ccUsersRange_' + step.id + '" value="' + step.ccUsers +'">');

    strArr.push('    </td>');
    strArr.push('</tr>');

    return strArr;
}

/**
 * 生成“选择回复对象”的页面元素字符串数组
 *
 * @param Step 		step		用于创建回复对象的步骤
 * @param string	objType		人员类型
 * @return Array()
 */
function createReplyObjContent(step,objType)	{
    if(step==null){
        return null;
    }
    if ($("#wfType").val().toUpperCase()=="FREE"
        && step.type.toUpperCase()=="END"
        && (step.executeMode.toUpperCase()=="ANY" || step.executeMode.toUpperCase()=="ALL")){	// 自由流程的结束步骤，且处理方式为“ANY”或“ALL”，不可设置抄送人
        return null;
    }
    var strArr = new Array();

    strArr.push('<tr id="replyObjStep" stepId="' + step.id + '" userType="' + objType + '">');	// 记录下步骤的id
    // 流程设计时，指定可以抄送，并且流程实例满足抄送状态
    strArr.push('    <th colspan=2>');
    var replyObjCustomName = step.replyObjCustomName;
    if(typeof(replyObjCustomName)=="undefined" || replyObjCustomName==null){
    	// 生成回复对象
    	replyObjCustomName = "回复对象";
    }
    strArr.push('    	'+replyObjCustomName+'<a  href="#" onClick="getRangeUser(\'replyobj\',\'' + step.id + '\',\'' + step.replyObjs + '\');return false;"> >> </a>');
    strArr.push('    </th>');
    strArr.push('    <td colspan=2" height="40px">');
    // 存放选择的回复对象名称
    strArr.push('		<textarea  type="text" name="nextReplyObjName_' + step.id + '"	id="nextReplyObjName_' + step.id + '" class="textarea_gb" readonly style="height:40px;">');

    strArr.push('</textarea>');
    // 存放选择的回复对象id
    strArr.push('		<input  type="hidden" name="nextReplyObjId_' + step.id + '"	id="nextReplyObjId_' + step.id + '" value="">');
    // 存放选择的回复对象类型
    strArr.push('		<input  type="hidden" name="nextReplyObjType_' + step.id + '"	id="nextReplyObjType_' + step.id + '" value="'+ step.replyObjType + '"');
    strArr.push('">');

    // 流程步骤信息中设置的可选回复对象类型范围及值
    strArr.push('		<input type="hidden" name="replyObjsRangeType_' + step.id + '" 	id="replyObjsRangeType_' + step.id + '" value="'+ step.replyObjType + '">');
    strArr.push('		<input type="hidden" name="replyObjsRange_' + step.id + '" 		id="replyObjsRange_' + step.id + '" value="' + step.replyObjs +'">');
    strArr.push('    </td>');
    strArr.push('</tr>');

    return strArr;
}

/*=============================================================================================
 * 					end .....以上方法用于opt_commit()
 =============================================================================================*/
























// 发布
function opt_publish() {
    if (!checkForm())
        return;
    //不点击提交，直接点击发布时，校验机关代字
    if( endStepValidDocNumExists() ) return;

    // 取得本流程实例的标题，以生成短信提醒内容
    var title = getFormTitle(true);
    if(isEmpty(title)==true)	return;
    sms = "有文件<" + title + ">等待你的处理，请查阅";	// 如果是会议通知，应该是：<会议名称>,请参加。
    $("#smsContent_publish").val(sms);

    // 根据流程定义信息，设置发布对象的值
    var vss = setPublishUsersValue();
    if(!isEmpty(vss)){
        var arr = vss.split("###");
        $("#wfEntityNextExecuteDTO\\.publishUserIds").val(arr[0]);
        $("#wfEntityNextExecuteDTO\\.publishUserNames").val(arr[1]);
    }

    // 如果选择了表单后面带发布对象的选择框，则点击发布按钮的时候直接发布，不再弹出选择发布对象的选择框
    if($("#wfEntity\\.publishUsersId").length > 0 || $('#f_jieshoudanwei').length > 0){
    	//发布时，进行弹出控制盖章打印份数控制
    	if($("div#sealPrintSysOrg").length > 0 && !isEmpty($("#wfEntity\\.publishUsersId").val())){
    		opt_sealPrintSysOrgs();
    	}else{
    		publishOk();
    	}
    }else{
    	dialog("发布对象", "id:optPublish", "800px", "auto", "text");
    }


}

//增加发布
function opt_addPublish() {
	
	var isHasSeal = $("#isHasSeal").val();
	//alert(isHasSeal);
	if(!isEmpty(isHasSeal) && isHasSeal=="true"){
		
		// 跳转到增加发布对象页面，重新选择发布对象且设置收文单位和盖章
		$("form").eq(0).attr("action",actName + '!jumpAddPublishPage.shtml');
    	$("form").eq(0).submit();
		
	}else{
		
		var _binded=$("#optAddPublish").attr("binded");
	    if(isEmpty(_binded) || _binded==="false"){
	        addPublishBindSealPrintEvent();
	        $("#optAddPublish").attr("binded","true");
	    }
		// 展示发布页面
	    dialog("发布对象", "id:optAddPublish", "800px", "auto", "text");
	    
	}
    
}

/**
 * 根据流程定义信息，设置发布对象的值
 */
function setPublishUsersValue(){
    var isError = false;
    var rtnData = {};
    /**===========================================
     * map中key值的定义：
     *  1、取自表单元素值
     *      formElement:    "1"
     *      elementName:    表单元素的名称
     *      elementChName:  表单元素的中文名称
     *  2、全体人员
     *      all:            "1"
     *  3、其他情况
     *      key分别为：ids、names。无值返回null
     ==============================================**/

    $.ajax({
        type: 		"POST",
        dataType:	"json",
        async:		false,
        url: 		"wfEntityAction!getPublishUsers.shtml",
        data: {
            "wfDefineInfo.id"	:	$("#wfDefineInfo\\.id").val()
        },
        success: function(data){
            if(typeof(data.fail)!="undefined"){
                alert("取得默认发布对象时出错:" + data.fail);
                isError = true;
            }else{
                rtnData = data;
                isError = false;
            }
        },
        error:function (XMLHttpRequest, textStatus, errorThrown) {
            alert("取得默认发布对象时出错！");
            isError = true;
        }
    });

    if(isError==true){
        return;
    }
    var ids = "";
    var names = "";
    // 选择了全体人员
    if(typeof(rtnData.all)!="undefined" && rtnData.all=="1"){
        $("#wfEntityNextExecuteDTO\\.isPublishToAllUser").prop("checked",true);
        showPublish($("#wfEntityNextExecuteDTO\\.isPublishToAllUser").get(0));
    }else if(typeof(rtnData.formElement)!="undefined" && rtnData.formElement=="1"){
        // 选择了“表单元素值”。姓名放在元素的value中，id放在元素的refDataIds属性中
        var $ele = $("[name=" + rtnData.elementName + "]",$("div#divForm"));
        if(!isEmpty($ele.val()) && $ele.is("[refDataIds]") && !isEmpty($ele.attr("refDataIds"))){
            ids = $ele.attr("refDataIds");
            names = $ele.val();
        }
        $("#wfEntityNextExecuteDTO\\.isPublishToAllUser").prop("checked",false);
        showPublish($("#wfEntityNextExecuteDTO\\.isPublishToAllUser").get(0));
    }else if(typeof(rtnData.ids)!="undefined" && !isEmpty(rtnData.ids)){
        // 选择了其他类型，数据放在data中返回
        ids = rtnData.ids;
        names = rtnData.names;
    }else{
        return "";
    }
    return ids + "###" + names;
}






// 请示
function opt_ask() {
    // 取得本流程实例的标题，以生成短信提醒内容
    var title = getFormTitle(true);
    if(isEmpty(title)==true)	return;
    sms = "有文件<" + title + ">等待你的处理，请查阅";	// 如果是会议通知，应该是：<会议名称>,请参加。
    $("#smsContent_ask").val(sms);

    // 将页面上的意见内容复制到提交框中
    $("textarea#toReturn_opinion").val($("textarea#wfStepUser\\.opinion").val());

    dialog("请示对象", "id:optAsk", "800px", "auto", "text");
}

// 收回
function opt_revoke() {
    if($("#curWfUserType").val()=="MANAGER"){
        //管理员收回
        opt_revokeForManager();
    }else{
        //普通人员收回
        if(confirm("你确认要执行收回操作吗？"))

        $("form").eq(0).attr("action",actName + '!revoke.shtml');
        $("form").eq(0).submit();
    }
}

// 催办
function opt_remind() {
    // 取得本流程实例的标题，以生成短信提醒内容
    var title = getFormTitle(true);
    if(isEmpty(title)==true)	return;
    sms = "请你抓紧办理<" + title + ">";
    $("#wfEntityNextExecuteDTO\\.remindTitle").val(sms);

    dialog("催办方式", "id:optRemind", "800px", "auto", "text");
}

// 否决
function opt_veto() {
    if(isEmpty($("textarea#wfStepUser\\.opinion").val())){
        alert("否决原因不能为空，请您将原因填写在意见框中！");
        return;
    }

    if(confirm("否决后本条数据将被停止处理。你确认要执行否决操作吗？")==false){
        return;
    }
    $("form").eq(0).attr("action",actName + '!veto.shtml');
    $("form").eq(0).submit();
}

// 回复
function opt_reply() {
    dialog("回复", "id:optReply", "800px", "auto", "text");
}


/**-----------回复信息-----------------------------------------------------------------------------------*/
function DataLength(fData)
{
    var intLength=0
    for (var i=0;i<fData.length;i++)
    {
        if ((fData.charCodeAt(i) < 0) || (fData.charCodeAt(i) > 255))
            intLength=intLength+2
        else
            intLength=intLength+1
    }
    return intLength
}
//回复信息
function replyInfoOk() {
	if (!checkForm())
	   return;

    var opti = $("#wfReplyObject\\.newOpinion").val();
    if (opti != "") {
      if (opti.length > 1000) {
          alert("回复信息最多能输入1000个字。");
          return false;
      }
    }

	openWaitDialog("正在保存数据，请您稍候.....");

	$("form").eq(0).attr("action",actName + '!replyInfo.shtml?replyOpinion='+$("#wfReplyObject\\.newOpinion").val());
	$("form").eq(0).submit();
}


// 回执
function opt_receipt() {
    if(confirm("你确认要生成回执吗？")==false){
        return;
    }
    $("form").eq(0).attr("action",actName + '!receipt.shtml');
    $("form").eq(0).submit();

//	if(isEmpty($("#wfStepUser\\.opinion").val())){
//		alert("请你输入回执意见！！");
//	}
}

// 转发（二次传阅）
function opt_reRead() {
    // 取得本流程实例的标题，以生成短信提醒内容
    var title = getFormTitle(true);
    if(isEmpty(title)==true)	return;
    if($("#cur_orgId").val()==7){
    	sms = "您有一条共享文件《" + title + "》，请及时查看。";	// 如果是会议通知，应该是：<会议名称>,请查阅。
	}else{
		sms = "有文件<" + title + ">转发给你，请查阅";	// 如果是会议通知，应该是：<会议名称>,请查阅。
	}

    $("#smsContent_reRead").val(sms);

    // 将页面上的意见内容复制到提交框中
    $("textarea#reRead_opinion").val($("textarea#wfStepUser\\.opinion").val());

    // 共享之前的校验，只有市府办才做此校验
    if($("#cur_orgId").val()==7){
    	 $.ajax({
    	        type: 		"POST",
    	        dataType:	"json",
    	        async:		false,
    	        url: 		"wfEntityAction!ajaxCheckCanShare.shtml",
    	        data: {
    	            "wfStepUser.id"	:	$("#wfStepUser\\.id").val()
    	        },
    	        success: function(data){
    	            if(typeof(data.fail)!="undefined"){
    	                alert("校验是否可共享时出错:" + data.fail);
    	                isError = true;
    	            }else{
    	                if(data.result=="NO"){
    	                	dialog("共享","id:optReRead", "800px", "auto", "text");
    	                }else if(data.result=="YES"){
    	                	alert("此公文您无权再次共享给其他人！");
    	                	return;
    	                }else{
    	                	alert("校验是否可共享时出错:"+data.content);
    	                	return;
    	                }
    	            }
    	        },
    	        error:function (XMLHttpRequest, textStatus, errorThrown) {
    	            alert("校验是否可共享时出错！");
    	            return;
    	        }
    	    });
    }else{
    	dialog("转发（二次传阅）","id:optReRead", "800px", "auto", "text");
    }

}

// 转成新流程
function opt_convert() {
    dialog("转成新流程", "id:optConvert", "800px", "auto", "text");
}

// 转成新流程
function opt_convertSwdj() {
    dialog("转成新流程", "id:optConvertSwdj", "800px", "auto", "text");
}

function convertSwdjOk(){
	if (!checkForm())
        return;

    if(isEmpty($("#wfConvertDTO\\.code").val())){
        alert("请选择一个“流程转换”的类型！");
        return;
    }

    if(isEmpty($("#wfConvertDTO\\.title").val())){
        alert("请输入新流程的标题！");
        return;
    }

    setDialogHide();

    openWaitDialog("正在执行[转成新流程]功能，请您稍候.....");

    $("form").eq(0).attr("action",actName + '!convertSwdj.shtml');
    $("form").eq(0).submit();
}


// 退回
function opt_toReturn() {
    // 取得本流程实例的标题，以生成短信提醒内容
    var title = getFormTitle(true);
    if(isEmpty(title)==true)	return;
    sms = "有文件<" + title + ">被退回，请查阅";	// 如果是会议通知，应该是：<会议名称>,请参加。
    $("#smsContent_return").val(sms);

    // 将页面上的意见内容复制到提交框中
    $("textarea#toReturn_opinion").val($("textarea#wfStepUser\\.opinion").val());
	
 	if($("#curWfUserType").val()=="MANAGER"){
        //管理员退回时取得可执行退回人员
        getCurrentWfStepUsers();
    }

    dialog("退回", "id:optToReturn", "800px", "auto", "text");

}


// 查看历史处理信息
function opt_hisWfStepUsers() {
    //临时存放form的action值，为后面恢复用
    var formAction=$("form").eq(0).attr("action");
    $("form").eq(0).attr("action",'wfStepUserAction!getHistory.shtml').attr("target","History");
    openNewWin("",null,null,"History");
//	$("form").eq(0).submit();
    document.forms[0].submit();	// 防止提交时进行检验
    $("form:eq(0)").attr("target","");
    //恢复原form的action值
    $("form").eq(0).attr("action",formAction);
    //$("#" + domainName + "\\.id").val("");
}

//查看流程日志
function opt_hisWfLog() {
    //临时存放form的action值，为后面恢复用
    var formAction=$("form").eq(0).attr("action");
    $("form").eq(0).attr("action",'wfLogAction!list.shtml').attr("target","Log");
    openNewWin("",null,null,"Log");
//	$("form").eq(0).submit();
    document.forms[0].submit();	// 防止提交时进行检验
    $("form:eq(0)").attr("target","");
    //恢复原form的action值
    $("form").eq(0).attr("action",formAction);
    //$("#" + domainName + "\\.id").val("");
}

// 关键字检索
function opt_search(){
    var topic = "";
    if($("[txtreservedomain=topic]",$("div#divForm")).length>0){
        topic = $("[txtreservedomain=topic]",$("div#divForm")).val();
    }
    dialog("发文助手", "iframe:./kldAction!searchDoc.shtml?title=" + topic, "800","500");
}
/**
 * 处理发文助手返回的文档
 *
 *
 * @param {} attId			word附件的id
 * @param {} isAppend		是否是追加模式。true:追加模式,false:替换模式
 */
function insertTemplateFromAttachment(url,isAppend){
    if(typeof(isAppend)!="undefined" && isAppend==true){
        TANGER_OCX_addTemplateFromURL(url);
    }else{
        TANGER_OCX_OpenDoc(url);
    }
}

/**
 *	将office草稿文件转换为不带修改痕迹的正文文件
 */
function opt_convertToWord(){
    // 非OFFICE文档，不需要保存，直接返回true
    if($("#wfEntity\\.editorType").val().toUpperCase()!="OFFICE"){
        alert("非office类型文档，不可转换！");
        return true;
    }

    // 已打开，则不再执行打开操作
    if(docFileType!="ZW_DRAFT" || TANGER_OCX_bDocOpen==false){
        alert("请先打开草稿文档！");
        return;
    }


    // 生成不带修改痕迹的正式文档
    docFileType = "ZW";
    // 接受所有的修订（生成不带痕迹的正式文档）
    if(TANGER_OCX_AcceptAllRevisions()==false){
        //alert("对草稿文档执行'接受所有的修订'功能时出错，不能生成不带修改痕迹的正式文档！");
        return;
    }
    // 将没有痕迹的正式文档进行保存
    if(saveDocFile()==false){
        //alert("生成不带修改痕迹的正式文档时不成功！");
        return false;
    }else{
        alert("不带修改痕迹的正文文件已经生成成功！");
    }
}
/**
 *	将office不带修改痕迹的正文文件转换为pdf文件
 */
function opt_convertToPdf(){
    var id = $("#wfEntity\\.docDataId").val();

    // 表单定义时，设置结转结束后需要将office文档转换为pdf格式
    if($("#formDefine\\.isConvertPDF").val()=="1"){
        if(confirm("调用本功能，系统将根据不带修改痕迹的正文文件，生成相应的pdf文件。\r\n执行本功能之前，请先执行“转换为无痕迹正文”功能。\r\n\r\n你确认要执行本功能吗？"))
        // 调用action中的方法，将正文文档转换为pdf
            if(convertDocToPdf(id)==false){
                return false;
            }else{
                alert("功能调用结束，请刷新本页面，以确认生成是否成功！");
            }
    }else{
        alert("本流程实例的表单定义为不可转换为pdf文件！");
        return;
    }
}

/**------请示--------------------------------------------------------------------------------------------*/
// 请示
function askOk() {
    if (!checkForm())
        return;

    if(isEmpty($("#wfEntityNextExecuteDTO\\.askUserIds").val())){
        alert("请示领导不能为空！");
        return false;
    }

    // 将退回框中的意见，复制到正式的意见框中
    $("textarea#wfStepUser\\.opinion").val($("textarea#ask_opinion").val());

    setDialogHide();

    openWaitDialog("正在执行[请示]功能，请您稍候.....");

    // 将表单中的数据组装、序列化，并赋值给相应的表单元素，以便将值传递给后台
    $("div#divForm").zyFormSaveDataJSON("formDataJsonStr");
    if(isEmpty($("#formDataJsonStr").val())){	// 没有生成表单数据，则不可生成下步骤
        closeWaitDialog();
        return;
    }

    // 是否带短信提醒、短信提醒内容
//	$("#wfEntityNextExecuteDTO\\.isSendSms").val($("#isSendSms_ask").val());
    if($("input[id='isSendSms_ask']:checkbox").prop("checked")==true){
        $("#wfEntityNextExecuteDTO\\.isSendSms").val(1);
    }else{
        $("#wfEntityNextExecuteDTO\\.isSendSms").val(0);
    }
    $("#wfEntityNextExecuteDTO\\.smsContent").val($("#smsContent_ask").val());


    // 保存正文的文件
    if(saveEntityFile()==false){
        closeWaitDialog();
        return	false;
    }

    $("form").eq(0).attr("action",actName + '!ask.shtml');
    $("form").eq(0).submit();
}

/**--------提交-------------------------------------------------------------------*/
// 取得radio的值
function getRadioValue(name) {
    var RadioS = document.forms[0].elements[name];
    var counter;
    for (counter = 0; counter < RadioS.length; counter++) {
        if (RadioS[counter].checked)
            return RadioS[counter].value;
    }
}

// 取得下环节步骤 信息
function changeStepName() {
    $("#nextStepNames").val($("select#nextStepId option:selected").text());
    $("#nextStepIds").val($("select#nextStepId option:selected").text());
}


/**
 * 提交按钮后出来的窗口点击取消的场合，清空一些变量用
 */
function commitCancel(){
	flagIsGongKai = 0;
}


/**
 *	在选择后续步骤处理人、传阅人的弹出窗口中点击“确定”后执行的功能。
 *		当前步骤的类型：	一定不是结束步骤
 *		当前人员：		一定是步骤的最后处理人
 */
function commitOk() {

    if ($("#wfEntity\\.id").val() == "" && $("#wfStep\\.stepName").val() == "批示登记" && $("#f_banlishixian").val() == 5) {
        alert("您创建的是分期件，请先保存然后设置期数，再提交！");
        return false;
    }

	if(checkFeedback("wfStepUser_opinion"))
    	return;
	// 除了分管秘书长（主任）审核步骤外，其他步骤再提交按钮出来的界面上点击确定时，再做判断(此时只做是否公开的判断)
	// 获取当前步骤并判断当前步骤是不是：“分管秘书长（主任）审核”步骤
	if(($("#cur_orgId").val()==="7" && ($("#wfStep\\.stepName").val()=="处室审核" || $("#wfStep\\.stepName").val()=="分管秘书长（主任）审核"))
    		||($("#cur_orgId").val()==="8" && ( $("#wfStep\\.stepName").val()=="处室审核" ||$("#wfStep\\.stepName").val()=="分管秘书处副主任审核"  ))){



			// 是否公开的判断
		    // 1、先判断是否存在“是否公开”这个域
			if(jQuery("#f_shifougongkai").length > 0 ){
				// 2、判断是否只读
				if($("#f_shifougongkai").attr("disabled")==undefined || $("#f_shifougongkai").attr("disabled")!="disabled"){
					// 3、判断是否公开的选择是不是“是”
				  	if(jQuery("#f_shifougongkai option:selected").val()=="是"){
				  		if(!confirm("该文档选择了公开并上网发布，是否同意?")){
				  			$("#f_shifougongkai").get(0).selectedIndex=1;
				  			TANGER_OCX_OBJ.SetBookmarkValue("公开标志","");
				  			//此处要做后台的记录
				  			savePublicOption($("#wfEntity\\.id").val(),$("#wfStep\\.id").val(),$("#cur_userId").val(),"不同意公开",1);
				  		}else{
				  			//此处要做后台的记录
				  			savePublicOption($("#wfEntity\\.id").val(),$("#wfStep\\.id").val(),$("#cur_userId").val(),"同意公开",1);
				  		}
				  	}
				}
			}




			// 是否规范性文件的判断
		    // 1、先判断是否存在“是否规范性文件”这个域
			if(jQuery("#f_shifouguifanxingwenjian").length > 0 ){
				// 2、判断是否只读
				if($("#f_shifouguifanxingwenjian").attr("disabled")==undefined || $("#f_shifouguifanxingwenjian").attr("disabled")!="disabled"){
					// 3、判断是否规范性文件的选择是不是“是”
				  	if(jQuery("#f_shifouguifanxingwenjian option:selected").val()=="是"){
				  		if(!confirm("该文档选择了属于规范性文件，是否同意?")){
				  			$("#f_shifouguifanxingwenjian").get(0).selectedIndex=1;
				  			//此处要做后台的记录
				  			savePublicOption($("#wfEntity\\.id").val(),$("#wfStep\\.id").val(),$("#cur_userId").val(),"不同意",2);
				  		}else{
				  			//此处要做后台的记录
				  			savePublicOption($("#wfEntity\\.id").val(),$("#wfStep\\.id").val(),$("#cur_userId").val(),"同意",2);
				  		}
				  	}
				}
			}


	}


	// 专门判断起始步骤是否为处室负责人
	if($("#wfStep\\.stepName").val()=="拟稿" && $("#selectNextStep").find("option:selected").text()=="分管秘书长（主任）审核"){
		// 是否公开的判断
	    // 1、先判断是否存在“是否公开”这个域
		if(jQuery("#f_shifougongkai").length > 0){
			// 2、判断是否只读
			if($("#f_shifougongkai").attr("disabled")==undefined || $("#f_shifougongkai").attr("disabled")!="disabled"){
				// 3、判断是否公开的选择是不是“是”
			  	if(jQuery("#f_shifougongkai option:selected").val()=="是"){
			  		if(!confirm("该文档选择了公开并上网发布，是否同意?")){
			  			$("#f_shifougongkai").get(0).selectedIndex=1;
			  			TANGER_OCX_OBJ.SetBookmarkValue("公开标志","");
			  			//此处要做后台的记录
			  			$("#isAgreeGongKai").val("不同意公开");
			  			//savePublicOption($("#wfEntity\\.id").val(),$("#wfStep\\.id").val(),$("#cur_userId").val(),"不同意公开");
			  		}else{
			  			//此处要做后台的记录
			  			$("#isAgreeGongKai").val("同意公开");
			  			//savePublicOption($("#wfEntity\\.id").val(),$("#wfStep\\.id").val(),$("#cur_userId").val(),"同意公开");
			  		}
			  	}
			}
		}

		// 是否规范性文件的判断
	    // 1、先判断是否存在“是否规范性文件”这个域
		if(jQuery("#f_shifouguifanxingwenjian").length > 0 ){
			// 2、判断是否只读
			if($("#f_shifouguifanxingwenjian").attr("disabled")==undefined || $("#f_shifouguifanxingwenjian").attr("disabled")!="disabled"){
				// 3、判断是否规范性文件的选择是不是“是”
			  	if(jQuery("#f_shifouguifanxingwenjian option:selected").val()=="是"){
			  		if(!confirm("该文档选择了属于规范性文件，是否同意?")){
			  			$("#f_shifouguifanxingwenjian").get(0).selectedIndex=1;
			  			//此处要做后台的记录
			  			$("#isAgreeGuiFan").val("不同意");
			  			//savePublicOption($("#wfEntity\\.id").val(),$("#wfStep\\.id").val(),$("#cur_userId").val(),"不同意",2);
			  		}else{
			  			//此处要做后台的记录
			  			$("#isAgreeGuiFan").val("同意");
			  			//savePublicOption($("#wfEntity\\.id").val(),$("#wfStep\\.id").val(),$("#cur_userId").val(),"同意",2);
			  		}
			  	}
			}
		}
	}

    if($("#isNeedIdea").val()=="true"){
        if(isEmpty($("textarea#wfStepUser\\.opinion").val())){
            alert("处理意见不能为空，请您填写处理意见！");
            return;
        }
    }
    if (!checkForm())
        return;

    // 本命令一定要执行，否则会导致下步骤处理人信息取不到值
    setDialogHide();

    openWaitDialog("正在[提交]数据，请您稍候.....");

    // 根据处理人信息，生成处理意见，并保存在提交框的处理意见中
    setWfStepUserOpinionValue();

    // 将提交框中的处理意见，复制到正式的处理意见框中
    $("textarea#wfStepUser\\.opinion").val($("textarea#wfStepUser_opinion").val());

    // 将提交框中的小贴士内容，复制到正式的小贴士内容隐藏域中
    $("#wfEntityNextExecuteDTO\\.tipsContent").val($("textarea#wfTips_content").val());

　　   // 将提交框中的共享人员ID内容，复制到正式的共享人员ID内容隐藏域中
    $("#wfEntityNextExecuteDTO\\.shareUserIds").val($("#shareUserIds").val());

    // 将表单中的数据组装、序列化，并赋值给相应的表单元素，以便将值传递给后台
    $("div#divForm").zyFormSaveDataJSON("formDataJsonStr");
    if(isEmpty($("#formDataJsonStr").val()) || $("#formDataJsonStr").val().length<=2){	// 没有生成表单数据，则不可生成下步骤
        closeWaitDialog();
        return;
    }

    // 取得步骤人员信息
    if(!getNextData()){
        closeWaitDialog();
        return;
    }


    // 自由流程，如果当前处理人是步骤的最后处理人，则分三种情况处理
    //		1、人工处理：需要有处理人
    //		2、进入即结束：传入结束步骤id:当前人员id
    //		3、全部处理完结束：不需要传入数据
    if($("#wfType").val().toUpperCase()=="FREE" 								// 自由流程
        && isEmpty($("#wfEntityNextExecuteDTO\\.nextExecuterIds").val())	// 下步骤处理人员为空
        && nextAndPreSetStepsObj.isContainEndNode==true){					// 后续步骤包含结束节点

        // 找到结束节点
        var endStep = findEndStep();
        if(endStep==null){
            alert("请选择下步骤处理人信息1");
            closeWaitDialog();
            return;
        }

        if(endStep.executeMode.toUpperCase()=="ANY"){							// 进入即结束：传入结束步骤id:当前人员id
            var ss = $("#wfStep\\.stepId").val() + ":" + $("#cur_userId").val();
            $("#wfEntityNextExecuteDTO\\.nextExecuterIds").val(ss)
        }
    }

    // 固定流程、自由流程的最后一个步骤（类型为“结束”）提交后都会结束流程，所以统一用isEndStep来标识是否最后的结束步骤
    if ($("#isEndStep").val() == 0
        && $("#isWfStepEndExecuter").val() == 1
        && isEmpty($("#wfEntityNextExecuteDTO\\.nextExecuterIds").val())) {	// 非结束步骤的最后处理人，都需要指定后续步骤的处理人员

        if($("#wfType").val().toUpperCase()=="FREE" 								// 自由流程
            && nextAndPreSetStepsObj.isContainEndNode==true){
            // 找到结束节点
            var endStep = findEndStep();
            if(endStep==null){
                alert("请选择下步骤处理人信息2");
                closeWaitDialog();
                return;
            }

            if(endStep.executeMode.toUpperCase()!="ALL"){							// 自由流程，没有处理人，结束步骤不是ALL类型，则要求有处理人
                alert("请选择下步骤处理人信息3");
                closeWaitDialog();
                return;
            }
        }else{
            alert("请选择下步骤处理人信息4");
            closeWaitDialog();
            return;
        }
    }
    // 因为在opt_commit已经对结束步骤的最后处理人进行了判断及相应处理，所以本方法处理的都不是结束步骤的最后处理人
    //		并且，系统的权限设置保证：不是步骤的最后处理人的话，是不会显示“提交”按钮的
    // 保存正文的文件
    var isHasSealPdf = $("#isHasSeal").val();
    var isHasSwSealPdf = $("#isHasSwSeal").val();
    if(!isEmpty(isHasSealPdf) && isHasSealPdf=="true"){

    }else{
    	
    	if(isHasSwSealPdf=="true" && $("#wfDefineInfo\\.wfTypeLib\\.id").val()=="1"){
    		
    	}else{
    		if(saveEntityFile()==false){
		        closeWaitDialog();
		        return	false;
		    }
    	}
    	
    }

    if(($("#wfStep\\.stepName").val()=="拟稿" || $("#wfStep\\.stepName").val()=="收文登记" || $("#wfStep\\.stepName").val()=="批示登记") && $("#disFaWenDraftFlow").val().indexOf(","+$("#wfEntity\\.wfDefineInfo\\.id").val()+",")>=0){

    	if($("#fwngz").length > 0 && $("#disFaWenDraftFlow").val().indexOf(","+$("#wfEntity\\.wfDefineInfo\\.id").val()+",")>=0){
	    	//检测发文拟稿纸是否加载
			var iframeW = fwngz.window.document.all("TANGER_OCX");
			if(iframeW==null||iframeW=="" || iframeW=="undefined"){
			 	//alert("发文拟稿纸尚未加载，请点击显示发文拟稿纸按钮，加载文件！");

			 	if($("#wfDefineInfo\\.wfTypeLib\\.id").val()==1){
					alert("收文处理单尚未加载，请点击显示收文处理单按钮，加载文件！");
				}else if($("#wfDefineInfo\\.wfTypeLib\\.id").val()==13){
					alert("事务审签单尚未加载，请点击显示事务审签单按钮，加载文件！");
				}else if($("#wfDefineInfo\\.wfTypeLib\\.id").val()==5){
					alert("批示办理单尚未加载，请点击显示批示办理单按钮，加载文件！");
				}else{
					alert("发文审签单尚未加载，请点击显示发文审签单按钮，加载文件！");
				}

			 	closeWaitDialog();
			 	return false;
			}
			//保存word文档
			if(!fwngz.window.saveDocFile()){
				closeWaitDialog();
				return false;
			}
    	}
    }else{

    	if($("#fwngz").length > 0 && $("#disFaWenDraftFlow").val().indexOf(","+$("#wfEntity\\.wfDefineInfo\\.id").val()+",")>=0){

    		//检测发文拟稿纸是否加载
    		var iframeW = fwngz.window.document.all("TANGER_OCX");
    		if(iframeW==null||iframeW=="" || iframeW=="undefined"){
				
    		}else{
    			//保存word文档
    			if(!fwngz.window.saveDocFile()){
    				return false;
    			}
    		}
    	}

    }
    /*	add zhouzz 20130517
     * 1.当前是收文流程，同时该流程已经创建过手写处理单
     * 2.生成的文件类型名为SW_MERGER
     * 3.该文件类型，后台只生成一个进行覆盖
     * */
    if($("#wfDefineInfo\\.wfTypeLib\\.id").val()=="1" && $("#wfEntity\\.editorType").val()!="PDF"){
    	if( !isEmpty( $("#nbStepDealFileType").val() ) ){
    		TANGER_OCX_AcceptAllRevisions();
    		TANGER_OCX_SetReviewMode(false);
    		swMerger();
    		docFileType="SW_MERGER";
    		saveDocFile();
    	}
    }

    $("form").eq(0).attr("action",actName + '!commit.shtml');
    $("form").eq(0).submit();

}
/**
 * 根据处理人信息，生成处理意见，针对直接通过opt_commit提交的情况
 * 不出现弹出框，没有commit_ok操作的情况
 */
function setWfStepUserOpinionValueByDirectCommit(){
	var opinion = "";
	var _opinion=$("textarea#wfStepUser\\.opinion").val();
	if(!isEmpty(_opinion)){
		opinion=_opinion;
	}
	var defaultIdea = $("#wfDefineInfo\\.workFlow\\.defaultIdea").val();
	var vv = $("textarea#wfStepUser_opinion").val();
	// 流程设计时，指定可以根据处理人自动生成处理意见
    if($("#wfDefineInfo\\.workFlow\\.isAutoCreateIdea").val()=="true"){
        var ss = Array();
        $("textarea[name^='nextExecuterName_']",$("table#nextStepsTbl>tbody")).each(function(){
            if(isEmpty($(this).val())){
                return;
            }
            var stepName = "";
            var id = $(this).attr("name").replace("nextExecuterName_","");		// 得出步骤id
            var $tr = $(this).parents("tr[stepId=" + id + "]");				// 找到存放处理人的行，行属性中步骤id、名称

            if($tr.length<=0){
            }else{
                ss.push("请 " + $(this).val() + " " + $tr.attr("stepName"));	// 根据信息，生成处理意见
            }
        });
        opinion = ss.join("　　");
    }
    // 有默认意见，并且当前意见为空
    if(!isEmpty(defaultIdea) && isEmpty(opinion)){
        opinion = defaultIdea;
    }
	if(vv==undefined ){
		$("textarea#wfStepUser\\.opinion").val(opinion);
	}
}

/**
 * 根据处理人信息，生成处理意见，并保存在提交框的处理意见中
 *
 */
function setWfStepUserOpinionValue(){
    var opinion = "";
    var defaultIdea = $("#wfDefineInfo\\.workFlow\\.defaultIdea").val();
    // 当前操作员手工批的意见
    var vv = $("textarea#wfStepUser_opinion").val();

    // 流程设计时，指定可以根据处理人自动生成处理意见
    if($("#wfDefineInfo\\.workFlow\\.isAutoCreateIdea").val()=="true"){
        var ss = Array();
        $("textarea[name^='nextExecuterName_']",$("table#nextStepsTbl>tbody")).each(function(){
            if(isEmpty($(this).val())){
                return;
            }

            var stepName = "";
            var id = $(this).attr("name").replace("nextExecuterName_","");		// 得出步骤id
            var $tr = $(this).parents("tr[stepId=" + id + "]");				// 找到存放处理人的行，行属性中步骤id、名称

            if($tr.length<=0){
            }else{
                ss.push("请 " + $(this).val() + " " + $tr.attr("stepName"));	// 根据信息，生成处理意见
            }
        });
        opinion = ss.join("　　");
    }

    // 有默认意见，并且当前意见为空
    if(!isEmpty(defaultIdea) && isEmpty(vv) && isEmpty(opinion)){
        opinion = defaultIdea;
    }

    //alert("vv:" + vv + "\r\nopinion:" + opinion + "\r\nempty:" + isEmpty(vv));
    if(isEmpty(vv)){
        $("textarea#wfStepUser_opinion").val(opinion);
    }else{
        $("textarea#wfStepUser_opinion").val( vv + "　　" + opinion);
    }
}


// 组装步骤人员信息
function getNextData() {
    var j = 0;
    var id = "";
    var nextExecuterIds 		= new Array(); 		// 选定的下步骤处理人ids,格式：步骤之间以＂步骤id:＂开头以分号隔开，步骤内以逗号隔开
    var nextExecuterNames 		= new Array(); 		// 选定的下步骤处理人names ,格式同nextExecuterIds
    var nextExecuteModes		= new Array();		// 下步骤处理人员之间关系
    var nextReaderIds 			= new Array(); 		// 选定的下步骤传阅人ids ,格式同nextExecuterIds
    var nextReaderNames 		= new Array(); 		// 选定的下步骤传阅人names ,格式同nextExecuterIds
    var nextCcUserIds 			= new Array(); 		// 选定的下步骤抄送人ids ,格式同nextExecuterIds
    var nextCcUserNames 		= new Array(); 		// 选定的下步骤抄送人names ,格式同nextExecuterIds
    var nextReplyObjIds			= new Array(); 		// 选定的下步骤回复对象Ids ,格式同nextExecuterIds
    var nextReplyObjNames		= new Array(); 		// 选定的下步骤回复对象names ,格式同nextExecuterIds
    var nextReplyObjType		= new Array(); 		// 选定的下步骤回复对象type ,格式同nextExecuterIds
    var nextExpectLeaveDateTimes= new Array();		// 下步骤的计划结束时间

    var preNextExecuterIds 		= new Array(); 		// 预设步骤处理人ids
    var preNextExecuterNames	= new Array(); 		// 预设步骤处理人names ,格式同nextExecuterIds
    var preNextReaderIds 		= new Array(); 		// 预设步骤传阅人ids ,格式同nextExecuterIds
    var preNextReaderNames 		= new Array(); 		// 预设步骤传阅人names ,格式同nextExecuterIds
    var preNextCcUserIds 		= new Array(); 		// 预设步骤抄送人ids ,格式同nextExecuterIds
    var preNextCcUserNames 		= new Array(); 		// 预设步骤抄送人names ,格式同nextExecuterIds
    var preNextExecuteModes		= new Array();		// 预设步骤处理人员之间关系

    // 流程流转过程中步骤的处理人，增加选择部门的方式；；；需要传递一个参数到后台表明处理人是：人员还是部门。
    //var nextExecuterTypes       = new Array();     //  下步骤处理人类型


    //标记处理下环节信息时是否正常 true表示正常 false表示异常
    var flag=true;

    // 取得后续步骤处理人、传阅人、抄送人数据
    $("table#nextStepsTbl tbody tr[userType=executer]").each(function(){
        var stepId = $(this).attr("stepId");	// 步骤id
        // 下步骤信息
        if ($("#nextExecuterId_" + stepId).val() != "" && $("#nextExecuterName_" + stepId).val() != "") {
            // 人员id
            var vv = stepId + ":" + $("#nextExecuterId_" + stepId).val();
            nextExecuterIds.push(vv);
            // 人员姓名
            vv = stepId + ":" + $("#nextExecuterName_" + stepId).val();
            nextExecuterNames.push(vv);
            // 人员之间关系
            vv = stepId + ":" + $("input:radio[name=nextExecuteMode_" + stepId + "]:checked").val();
            nextExecuteModes.push(vv);

            // 该步骤处理人类型
            //vv = stepId + ":" + $("#executersRangeType_" + stepId).val();
            //nextExecuterTypes.push(vv);

            //步骤计划结束时间
            if ($("#nextExpectLeaveDateTime_" + stepId).length>0 && $("#nextExpectLeaveDateTime_" + stepId).val() != "" ) {
                vv = stepId + "@" + $("#nextExpectLeaveDateTime_" + stepId).val();
                nextExpectLeaveDateTimes.push(vv);
            }
        } else {
            if($("#curStep\\.canAddExecuters").val().toLowerCase()=="true"){
                // 如果本步骤可以动态增加处理人，步骤可以没有处理人
                // ok
            }else if($("#wfType").val().toUpperCase()=="FREE" && $("#curStep\\.stepsSelectMode").val().toUpperCase()=="ALL"){
                // 如果是自由流程，且可以选择多个后续步骤时，只要有一个步骤有处理人即可
                // ok
            }else{
                alert("步骤：" + $("th",$(this)).first().html() + "  没有选择处理人！");
                flag= false;
                return;
            }
        }


    });
    // 取得预设步骤的处理人、传阅人、抄送人信息
    $("table#nextStepsTbl tbody tr[userType=preSetExecuter]").each(function(){
        var stepId = $(this).attr("stepId");	// 步骤id
        if ($("#nextExecuterId_" + stepId).val() != "" && $("#nextExecuterName_" + stepId).val() != "") {
            // 人员id
            var vv = stepId + ":" + $("#nextExecuterId_" + stepId).val();
            preNextExecuterIds.push(vv);
            // 人员姓名
            vv = stepId + ":" + $("#nextExecuterName_" + stepId).val();
            preNextExecuterNames.push(vv);
            // 人员之间关系
            vv = stepId + ":" + $("input:radio[name=nextExecuteMode_" + stepId + "]:checked").val();
            preNextExecuteModes.push(vv);

            //步骤计划结束时间
            if ($("#nextExpectLeaveDateTime_" + stepId).length>0 && $("#nextExpectLeaveDateTime_" + stepId).val() != "" ) {
                vv = stepId + "@" + $("#nextExpectLeaveDateTime_" + stepId).val();
                nextExpectLeaveDateTimes.push(vv);
            }

        }else{
            // 处理下一步骤。此处的return，只是返回到each()
            return;
        }

    });

    // 取得传阅人数据。因为传阅人不需要分步骤，所以多步骤时，只放在最后一个步骤
    $("table#nextStepsTbl tbody tr[userType=reader]").each(function(){
        var stepId = $(this).attr("stepId");	// 步骤id
        // 取得传阅人数据
        if ($("#nextReaderId_" + stepId).length>0
            && $("#nextReaderId_" + stepId).val() != ""
            && $("#nextReaderName_" + stepId).length>0
            && $("#nextReaderName_" + stepId).val() != ""){
            // 人员id
            var vv = stepId + ":" + $("#nextReaderId_" + stepId).val();
            nextReaderIds.push(vv);
            // 人员姓名
            vv = stepId + ":" + $("#nextReaderName_" + stepId).val();
            nextReaderNames.push(vv);
        }
    });

    // 取得抄送人数据。因为抄送人不需要分步骤，所以多步骤时，只放在最后一个步骤
    $("table#nextStepsTbl tbody tr[userType=ccUser]").each(function(){
        var stepId = $(this).attr("stepId");	// 步骤id
        // 取得抄送人数据
        if ($("#nextCcUserId_" + stepId).length>0
            && $("#nextCcUserId_" + stepId).val() != ""
            && $("#nextCcUserName_" + stepId).length>0
            && $("#nextCcUserName_" + stepId).val() != ""){
            // 人员id
            var vv = stepId + ":" + $("#nextCcUserId_" + stepId).val();
            nextCcUserIds.push(vv);
            // 人员姓名
            vv = stepId + ":" + $("#nextCcUserName_" + stepId).val();
            nextCcUserNames.push(vv);
        }
    });

    // 取得回复对象数据。因为回复对象不需要分步骤，所以多步骤时，只放在最后一个步骤
    $("table#nextStepsTbl tbody tr[userType=replyObj]").each(function(){
        var stepId = $(this).attr("stepId");	// 步骤id
        // 取得抄送人数据
        if ($("#nextReplyObjId_" + stepId).length>0
            && $("#nextReplyObjId_" + stepId).val() != ""
            && $("#nextReplyObjName_" + stepId).length>0
            && $("#nextReplyObjName_" + stepId).val() != ""){
            // 人员id
            var vv = stepId + ":" + $("#nextReplyObjId_" + stepId).val();
            nextReplyObjIds.push(vv);
            // 人员姓名
            vv = stepId + ":" + $("#nextReplyObjName_" + stepId).val();
            nextReplyObjNames.push(vv);
            // 回复对象类型
            vv = stepId + ":" + $("#nextReplyObjType_" + stepId).val();
            nextReplyObjType.push(vv);
        }
    });


    // 下步骤的处理人、传阅人id及姓名、处理人之间关系、处理人类型、步骤计划结束时间
    $("#wfEntityNextExecuteDTO\\.nextExecuterIds").val(nextExecuterIds.join(";"));
    $("#wfEntityNextExecuteDTO\\.nextExecuterNames").val(nextExecuterNames.join(";"));
    $("#wfEntityNextExecuteDTO\\.nextReaderIds").val(nextReaderIds.join(";"));
    $("#wfEntityNextExecuteDTO\\.nextReaderNames").val(nextReaderNames.join(";"));
    $("#wfEntityNextExecuteDTO\\.nextCcUserIds").val(nextCcUserIds.join(";"));
    $("#wfEntityNextExecuteDTO\\.nextCcUserNames").val(nextCcUserNames.join(";"));
    $("#wfEntityNextExecuteDTO\\.nextReplyObjType").val(nextReplyObjType.join(";"));
    $("#wfEntityNextExecuteDTO\\.nextReplyObjIds").val(nextReplyObjIds.join(";"));
    $("#wfEntityNextExecuteDTO\\.nextReplyObjNames").val(nextReplyObjNames.join(";"));
    $("#wfEntityNextExecuteDTO\\.nextExecuteModes").val(nextExecuteModes.join(";"));
    //$("#wfEntityNextExecuteDTO\\.nextExecuterTypes").val(nextExecuterTypes.join(";"));
    if(nextExpectLeaveDateTimes.length>0){
        $("#wfEntityNextExecuteDTO\\.nextExpectLeaveDateTimes").val(nextExpectLeaveDateTimes.join(";"));
    }
    //alert($("#wfEntityNextExecuteDTO\\.nextExpectLeaveDateTimes").val());

    // 预设步骤的处理人、传阅人id及姓名、处理人之间关系
    if(preNextExecuterIds.length>0){
        $("#wfEntityNextExecuteDTO\\.preNextExecuterIds").val(preNextExecuterIds.join(";"));
        $("#wfEntityNextExecuteDTO\\.preNextExecuterNames").val(preNextExecuterNames.join(";"));
        $("#wfEntityNextExecuteDTO\\.preNextExecuteModes").val(preNextExecuteModes.join(";"));
    }
    if(preNextReaderIds.length>0){
        $("#wfEntityNextExecuteDTO\\.preNextReaderIds").val(preNextReaderIds.join(";"));
        $("#wfEntityNextExecuteDTO\\.preNextReaderNames").val(preNextReaderNames.join(";"));
    }
    if(preNextCcUserIds.length>0){
        $("#wfEntityNextExecuteDTO\\.preNextCcUserIds").val(preNextCcUserIds.join(";"));
        $("#wfEntityNextExecuteDTO\\.preNextCcUserNames").val(preNextCcUserNames.join(";"));
    }

    // 是否带短信提醒、短信提醒内容
    //	$("#wfEntityNextExecuteDTO\\.isSendSms").val($("#isSendSms_commit").val());
    if($("input[id='isSendSms_commit']:checkbox").prop("checked")==true){
        $("#wfEntityNextExecuteDTO\\.isSendSms").val(1);
    }else{
        $("#wfEntityNextExecuteDTO\\.isSendSms").val(0);
    }
    $("#wfEntityNextExecuteDTO\\.smsContent").val($("#smsContent_commit").val());

    // 是否移动端处理
    //alert($("input[id='isMobileDeal']:checkbox").prop("checked"));
    if($("input[id='isMobileDeal']:checkbox").prop("checked")==true){
        $("#wfEntityNextExecuteDTO\\.isMobileDeal").val(1);
    }else{
        $("#wfEntityNextExecuteDTO\\.isMobileDeal").val(0);
    }

    return flag;
}

/**---------发布-----------------------------------------------------------------------------------------*/
function getPublishSelect() {
    var url;
    url = '${request.contextPath}/workflow/jet/publishSelectExecuter.ftl';

    var child = window
        .showModalDialog(url, window,
            "scroll:no;status:no;resizable:yes;dialogHeight:500px;dialogWidth:580px;");
    //var child = window.open(url,"newwindow", 'height=500, width=580, top=0,left=0, toolbar=no, menubar=no, scrollbars=no, resizable=yes,location=no,status=no');

}

//是否发布到全部人员
function showPublish(obj) {
    if ($(obj).is(":checked")) {
    	var isAllUser=$(obj).attr("id")=="wfEntityNextExecuteDTO.isPublishToAllUser";	//判断当前对象是不是 全体人员checkbox
    	if(isAllUser){
    		//如果是选中 全体人员，则其他选中的全部取消勾选
    		$("input:checkbox.selectablePublishUserInfo").each(function(){
    			$(this).prop("checked",false);
    	    });
    	}else{
    		//如果 全体人员 已选中，则其他的无法选择
    		var isSelectedAllUser=$("#wfEntityNextExecuteDTO\\.isPublishToAllUser").prop("checked")==true;
    		if(isSelectedAllUser){
    			$(obj).prop("checked",false);
    			alert("已选中全体人员，无法选择其他对象!如要选择其他对象，请先取消全部人员!");
    		}
    	}
    	$("#wfEntityNextExecuteDTO\\.publishUserNames").val("");
        $("#wfEntityNextExecuteDTO\\.publishUserIds").val("");
        $("#publishTd").attr("rowSpan", 1);
        $("#publishTd").height(25);
        $("#publish").css("display", "none");
        $("#publishTr").css("display", "none");
    } else {
    	//当发布对象中有任意一个被选中，则不显示
    	var isSelected=[];
    	$("div#publishCheckbox input:checkbox").each(function(){
    		if( $(this).prop("checked")){
    			isSelected.push("true");
    		}
    	});
    	if(isSelected.length<=0){
		 	$("#publishTd").attr("rowSpan", 2);
	        $("#publishTd").height(65);
	        $("#publish").css("display", "");
	        $("#publishTr").css("display", "");
    	}
    }
}

// 发布
function publishOk() {
	var keytitle="发布";
	if($("#wfEntity\\.FC4").length > 0 || $("#wfEntity\\.publishUsersId").length > 0 || $('#f_jieshoudanwei').length > 0){

		// 上报的场合
		if($('#f_jieshoudanwei').length > 0){
             keytitle="上报";
        }

		// 选择了发布对象为个人的场合
		if($("#wfEntity\\.FC4").length > 0){

			//alert($("#wfEntityNextExecuteDTO\\.publishUserIds").val());
			if(!isEmpty($("#wfEntity\\.FC4").val())){
				if(isEmpty($("#wfEntityNextExecuteDTO\\.publishUserIds").val())){
					$("#wfEntityNextExecuteDTO\\.publishUserIds").val($("#wfEntity\\.FC4").val());
				}else{
					$("#wfEntityNextExecuteDTO\\.publishUserIds").val($("#wfEntityNextExecuteDTO\\.publishUserIds").val()+","+$("#wfEntity\\.FC4").val());
				}
			}

       }
		// add by 吴国算(根据岗位ID，取得人员ID)
		//获取发布对象岗位ID
		var groupIds="";
		if($('#f_jieshoudanwei').length > 0){
			if(!isEmpty($('#f_jieshoudanwei').val())){
				groupIds = $('#f_jieshoudanwei').attr("refDataIds");
			}else{
				groupIds = $("#wfEntity\\.publishUsersId").val();
			}
		}else{

			groupIds = $("#wfEntity\\.publishUsersId").val();

		}

		$.ajax({
	        type: 		"POST",
	        dataType:	"json",
	        async:		false,
	        url: 		"userGroupAction!getUserIdsByGroupId.shtml",
	        data: {
	            "groupIds"	:	groupIds
	        },
	        success: function(data){

	            if(typeof(data.fail)!="undefined"){
	                alert("生成发布对象具体用户时出错:" + data.fail);
	            }else if(data.result=="NO"){


	            }else{
	            	//$("#wfEntityNextExecuteDTO\\.publishUserIds").val(data.userIds)
	            	if(isEmpty($("#wfEntityNextExecuteDTO\\.publishUserIds").val())){
	            		$("#wfEntityNextExecuteDTO\\.publishUserIds").val(data.userIds)
					}else{
						$("#wfEntityNextExecuteDTO\\.publishUserIds").val($("#wfEntityNextExecuteDTO\\.publishUserIds").val()+","+data.userIds);
					}

	            }
	        },
	        error:function (XMLHttpRequest, textStatus, errorThrown) {
	            alert("生成发布对象具体用户时出错！");
	        }
	    });

		if(isEmpty($("#wfEntityNextExecuteDTO\\.publishUserIds").val())){
    		alert("发布对象不能为空");
    		return ;
    	}
	}

	//alert($("#wfEntityNextExecuteDTO\\.publishUserIds").val());
    //判断是否有 可选择的发布对象被选中，遍历所有的checkbox，将选中的信息存入数组
    var selectablePublishUserInfos=[];
    $("input:checkbox.selectablePublishUserInfo").each(function(){
        if( $(this).prop("checked")==true ){
            var _info=$(this).attr("selectablePublishUserInfo");
            selectablePublishUserInfos.push(_info);
        }
    });
    var isSelected=selectablePublishUserInfos.length<=0;
    var isPublishToAllUser=$("input:checkbox#wfEntityNextExecuteDTO\\.isPublishToAllUser").prop("checked")==false;
    if(isPublishToAllUser&&isSelected){	// 不是发布给全体人员
        if(isEmpty($("#wfEntityNextExecuteDTO\\.publishUserIds").val())){
            alert("发布对象不能为空！");
            return;
        }
    }
    //如果没有选中发布给 所有人员，则根据 可选择的发布对象信息组装后提交到后台解析
    if(isPublishToAllUser ){
        if(!isSelected){
            $("#wfEntityNextExecuteDTO\\.selectablePublishUserInfos").val(selectablePublishUserInfos.join("%%"));
        }
    }

    setDialogHide();

    openWaitDialog("正在执行["+keytitle+"]功能，请您稍候.....");

    // 将表单中的数据组装、序列化，并赋值给相应的表单元素，以便将值传递给后台
    $("div#divForm").zyFormSaveDataJSON("formDataJsonStr");
    if(isEmpty($("#formDataJsonStr").val()) || $("#formDataJsonStr").val().length<=2){	// 没有生成表单数据，则不可生成下步骤
        closeWaitDialog();
        return;
    }

    // 是否带短信提醒、短信提醒内容
    //	$("#wfEntityNextExecuteDTO\\.isSendSms").val($("#isSendSms_publish").val());
    if($("input[id='isSendSms_publish']:checkbox").prop("checked")==true){
        $("#wfEntityNextExecuteDTO\\.isSendSms").val(1);
    }else{
        $("#wfEntityNextExecuteDTO\\.isSendSms").val(0);
    }
    $("#wfEntityNextExecuteDTO\\.smsContent").val($("#smsContent_publish").val());

    //alert("formDataMaster.id:" + $("input[name=formDataMaster\\.id]").length + "   actName:" + actName);

    // 将草稿文档保存，并生成不带修改痕迹的正式文档，同时根据设置决定是否生成PDF文档
    if(saveDocFileAndCreateNoReviewDoc()==false){	// 转换失败的话则返回
        closeWaitDialog();
        return;
    }

    //alert($("#wfEntityNextExecuteDTO\\.publishUserIds").val());
    $("form").eq(0).attr("action",actName + '!publish.shtml');
    $("form").eq(0).submit();
    //在发布弹出窗口点击确定提交后，再增加nextid
    endStepIncreaseNextId();
}


//增加发布
function addPublishOk() {
    //判断是否绑定过盖章打印份数控制事件
    if($("#optAddPublish").attr("binded")==="true"){
        if(sealPrintSysOrgsOk(publishTypes.addPublish)===false){
            alert("请注意填写打印份数!");
            return ;
        }
    }
    if(isEmpty($("#wfEntityNextExecuteDTO\\.publishUserIds").val())){
     alert("发布对象不能为空！");
     return;
    }
    setDialogHide();

    openWaitDialog("正在执行[发布]功能，请您稍候.....");

    $("form").eq(0).attr("action",actName + '!addPublish.shtml');
    $("form").eq(0).submit();
}


/**-----------催办-----------------------------------------------------------------------------------*/
// 催办
function remindOk() {
    //取得催办方法
    var w="";
    $("input[name=remindMethod]").each(function(){
        if(this.checked == true){
//		alert($(this).val() );
            w=w+$(this).val()+","
        }
    });
    $("#wfEntityNextExecuteDTO\\.remindMethod").val(w);
    //alert(	$("#wfEntityNextExecuteDTO\\.remindMethod").val());
    if($("#wfEntityNextExecuteDTO\\.remindMethod").val()==""){
        alert("请选择催办方法！");
        return;
    }

    setDialogHide();

    openWaitDialog("正在执行[催办]功能，请您稍候.....");

    $("form").eq(0).attr("action",actName + '!remind.shtml');
    $("form").eq(0).submit();
}
/**-----------回复-----------------------------------------------------------------------------------*/
// 回复
function replyOk() {
    if (!checkForm())
        return;

    setDialogHide();

    openWaitDialog("正在保存数据，请您稍候.....");

    $("form").eq(0).attr("action",actName + '!reply.shtml');
    $("form").eq(0).submit();
}
/**-----------转发(二次传阅)-------------------------------------------------------------------------------*/
// 转发(二次传阅)
function reReadOk() {
    if (!checkForm())
        return;

    if(isEmpty($("#wfEntityNextExecuteDTO\\.reReaderIds").val())){

    	if($("#currentUser\\.orgId").val()==7){
    		alert("共享对象不能为空！");
    	}else{
    		alert("转发对象不能为空！");
    	}

        return;
    }

    // 将转发框中的意见，复制到正式的意见框中
    $("textarea#wfStepUser\\.opinion").val($("textarea#reRead_opinion").val());

    setDialogHide();

    if($("#currentUser\\.orgId").val()==7){
    	 openWaitDialog("正在执行[共享]功能，请您稍候.....");
	}else{
		 openWaitDialog("正在执行[转发]功能，请您稍候.....");
	}

    // 是否带短信提醒、短信提醒内容
    if($("input[id='isSendSms_reRead']:checkbox").prop("checked")==true){
        $("#wfEntityNextExecuteDTO\\.isSendSms").val(1);
    }else{
        $("#wfEntityNextExecuteDTO\\.isSendSms").val(0);
    }
    $("#wfEntityNextExecuteDTO\\.smsContent").val($("#smsContent_reRead").val());


    $("form").eq(0).attr("action",actName + '!reRead.shtml');
    $("form").eq(0).submit();

}
/**-----------转成新流程-------------------------------------------------------------------------------*/

function convertOk(){
    if (!checkForm())
        return;

    if(isEmpty($("#wfConvertDTO\\.code").val())){
        alert("请选择一个“流程转换”的类型！");
        return;
    }

    if(isEmpty($("#wfConvertDTO\\.title").val())){
        alert("请输入新流程的标题！");
        return;
    }

    setDialogHide();

    openWaitDialog("正在执行[转成新流程]功能，请您稍候.....");

    $("form").eq(0).attr("action",actName + '!convert.shtml');
    $("form").eq(0).submit();
}

//	选择了不同的配置信息时，生成相关数据
function changeConvertCcode(){
    var value = $("#wfConvertDTO\\.code").val();
    if(isEmpty(value)==true){
        alert("请你先选择一个“转成新流程”的类型！");
        return;
    }
    var isError = false;
    var wfConvert = {};
    // 调用取得后续步骤、预设步骤的action方法。使用“同步”调用的方式
    $.ajax({
        type: "POST",
        dataType:"json",
        async:false,
        url: "wfConvertAction!getWfConvertJson.shtml",
        data: {
            "srcWfEntityId"		:	$("#wfEntity\\.id").val(),
            "wfConvert.code"	:	value
        },
        success: function(data){
            if(typeof(data.fail)!="undefined"){
                alert("取“流程转换定义信息”时出错:" + data.fail);
                isError = true;
                return;
            }else{
                // 定义的当前步骤的后续步骤及预设步骤全局对象
                wfConvert = data;
            }
        },
        error:function (XMLHttpRequest, textStatus, errorThrown) {
            alert("取“流程转换定义信息”时出错！");
            isError = true;
            return;
        }
    });
    if(isError==true){
        return;
    }

    // 新流程实例处理人
    $("#wfConvertDTO\\.createrName").val(wfConvert.flowCreaterRangeName);
    $("#wfConvertDTO\\.createrId").val(wfConvert.flowCreaterRangeId);

    // 新流程的正文来源
    $("#wfConvertDTO\\.docSource").val(wfConvert.docSource.toUpperCase());

    // 不是选择NONE
    if(wfConvert.docSource.toUpperCase()!="NONE"){
        var srcArr = new Array();
        srcArr.push('<input type="text" name="docSourceShow" id="docSourceShow" class="input_tx_gb"  value="" readonly>');
        srcArr.push('<input type="hidden" name="wfConvertDTO.docSource" id="wfConvertDTO.docSource" value="">');
        $("div#docSourceDiv").html(srcArr.join(""));
    }
    switch(wfConvert.docSource.toUpperCase()){
        case	"RUNTIME":			// 运行时指定
            var srcArr = new Array();
            srcArr.push('<select style="width:80%" name="wfConvertDTO.docSource" id="wfConvertDTO.docSource">');
            srcArr.push('	<option value="NONE">无</option>');
            srcArr.push('	<option value="DRAFT">源流程的草稿正文</option>');
            srcArr.push('	<option value="ZW">源流程的正式正文</option>');
            srcArr.push('	<option value="PDF">源流程的PDF正文</option>');
            srcArr.push('	<option value="PDFZW">源流程的PDF或是正式正文</option>');
            srcArr.push('</select>');
            $("div#docSourceDiv").html(srcArr.join(""));
            break;
        case	"NONE":				// 无
            $("#docSourceShow").val("无");
            break;
        case	"DRAFT":
            $("#docSourceShow").val("源流程的草稿正文");
            break;
        case	"ZW":
            $("#docSourceShow").val("源流程的正式正文");
            break;
        case	"PDF":
            $("#docSourceShow").val("源流程的PDF正文");
            break;
        case	"PDFZW":
            $("#docSourceShow").val("源流程的PDF或是正式正文");
            break;
        default:
            $("#wfConvertDTO\\.docSource").val("NONE");
            $("#docSourceShow").val("无");
            alert("新流程的正文来源设置错误：" + wfConvert.docSource);
            break;
    }




    // 新流程实例的附件导入方式
    $("#wfConvertDTO\\.importAttach").val(wfConvert.importAttach.toUpperCase());

    // 不是选择NONE
    if(wfConvert.importAttach.toUpperCase()!="NONE"){
        var srcArr = new Array();
        srcArr.push('<input type="text" name="importAttachShow" id="importAttachShow" class="input_tx_gb"  value="" readonly>');
        srcArr.push('<input type="hidden" name="wfConvertDTO.importAttach" id="wfConvertDTO.importAttach" value="">');
        $("div#importAttachDiv").html(srcArr.join(""));
    }
    switch(wfConvert.importAttach.toUpperCase()){
        case	"RUNTIME":
            var srcArr = new Array();
            srcArr.push('<select style="width:80%" name="wfConvertDTO.importAttach" id="wfConvertDTO.importAttach">');
            srcArr.push('	<option value="NONE">不导入</option>');
            srcArr.push('	<option value="ATTS">导入全部附件</option>');
            srcArr.push('	<option value="ATTS_ZW">导入正式正文及全部附件</option>');
            srcArr.push('	<option value="ATTS_PDF">导入PDF正文及全部附件</option>');
            srcArr.push('	<option value="ATTS_PDFZW">导入PDF正文或是正式正文及全部附件</option>');
            srcArr.push('	<option value="ZW">导入正式正文作为附件</option>');
            srcArr.push('	<option value="PDF">导入PDF正文作为附件</option>');
            srcArr.push('	<option value="PDFZW">导入PDF正式或是正式正文作为附件</option>');
            srcArr.push('</select>');
            $("div#importAttachDiv").html(srcArr.join(""));
            break;
            break;
        case	"NONE":		// 不导入
            $("#importAttachShow").val("不导入");
            break;
        case	"ATTS":
            $("#importAttachShow").val("导入全部附件");
            break;
        case	"ATTS_ZW":
            $("#importAttachShow").val("导入正式正文及全部附件");
            break;
        case	"ATTS_PDF":
            $("#importAttachShow").val("导入PDF正文及全部附件");
            break;
        case	"ATTS_PDFZW":
            $("#importAttachShow").val("导入PDF正文或是正式正文及全部附件");
            break;
        case	"ZW":
            $("#importAttachShow").val("导入正式正文作为附件");
            break;
        case	"PDF":
            $("#importAttachShow").val("导入PDF正文作为附件");
            break;
        case	"PDFZW":
            $("#importAttachShow").val("导入PDF正式或是正式正文作为附件");
            break;
        default:
            $("#wfConvertDTO\\.importAttache").val("NONE");
            $("#importAttachShow").val("不导入");
            alert("新流程的附件设置错误：" + wfConvert.docSource);
            break;
    }

    // 取得本流程实例的标题，以生成短信提醒内容
    var title = getFormTitle(true);
    if(isEmpty(title)==false){
        sms = "有文件<" + title + ">等待你的处理，请查阅";	// 如果是会议通知，应该是：<会议名称>,请参加。
        $("#smsContent_convert").val(sms);
        $("#wfConvertDTO\\.title").val(title);
    }
}


/**-----------退回-----------------------------------------------------------------------------------*/
// 退回
function toReturnOk() {
    if (!checkForm())
        return;

    if($("#returnUserId").val()==""){
        alert("请选择要退回的步骤人员！");
        return;
    }

    // 将退回框中的意见，复制到正式的意见框中
    $("textarea#wfStepUser\\.opinion").val($("textarea#toReturn_opinion").val());

    setDialogHide();

    openWaitDialog("正在执行[退回]功能，请您稍候.....");

    // 将表单中的数据组装、序列化，并赋值给相应的表单元素，以便将值传递给后台
    $("div#divForm").zyFormSaveDataJSON("formDataJsonStr");
    if(isEmpty($("#formDataJsonStr").val())){	// 没有生成表单数据，则不可生成下步骤
        closeWaitDialog();
        return;
    }

    // 是否带短信提醒、短信提醒内容
//	$("#wfEntityNextExecuteDTO\\.isSendSms").val($("#isSendSms_return").val());
    if($("input[id='isSendSms_return']:checkbox").prop("checked")==true){
        $("#wfEntityNextExecuteDTO\\.isSendSms").val(1);
    }else{
        $("#wfEntityNextExecuteDTO\\.isSendSms").val(0);
    }
    $("#wfEntityNextExecuteDTO\\.smsContent").val($("#smsContent_return").val());

    //赋值
    $("#wfEntityNextExecuteDTO\\.returnWfStepUserId").val($("#returnUserId").val());

	// 保存正文的文件
    var isHasSealPdf = $("#isHasSeal").val();
    var isHasSwSealPdf = $("#isHasSwSeal").val();
    if(!isEmpty(isHasSealPdf) && isHasSealPdf=="true"){

    }else{
    	
    	if(isHasSwSealPdf=="true" && $("#wfDefineInfo\\.wfTypeLib\\.id").val()=="1"){
    		
    	}else{
    		if(saveEntityFile()==false){
		        closeWaitDialog();
		        return	false;
		    }
    	}
    	
    }

    $("form").eq(0).attr("action",actName + '!toReturn.shtml');
    $("form").eq(0).submit();
}


/**
 * 根据步骤定义中的人员信息，打开人员参照窗口。
 * 	参照窗口中显示的人员是有范围限定的
 *
 * @param {} type		人员类型
 * @param {} stepId		步骤id
 * @param {} objIds     处理人、传阅人、抄送人传入的对象都是userIds，回复对象传入的有可能是一下几种对象的id（userId、deptId、groupId、roleId、orgId）
 */
function getRangeUser(type,stepId,objIds){
    if(typeof(stepId)=="undefined" || stepId==""){
        //alert("选择人员时，步骤id参数不能为空！");
        alert("请先选择下一步步骤！");
        return;
    }

    var rangeType = "";			// 人员范围类型
    var rangeIds = "";			// 人员范围的id值
    var dealerType = "";        // 是部门还是人
//	var userIds = "";			// 指定范围内人员的id
//	var wfId = $("#wfEntity\\.id").val();				// 流程实例id
    if(type.toLowerCase()=="executer"){			// 处理人
        rangeType 	= $("#executersRangeType_" + stepId).val();
        rangeIds 	= $("#executersRange_" + stepId).val();

        if(rangeType.toUpperCase()=="ALL" || rangeIds==""){				// 选择了全体人员
            openUserRefM('nextExecuterId_' + stepId + '=value1&nextExecuterName_' + stepId + '=value2&getSavedData=true');
            return;
        }
    }else if(type.toLowerCase()=="reader"){		// 传阅人
        rangeType 	= $("#readersRangeType_" + stepId).val();
        rangeIds 	= $("#readersRange_" + stepId).val();
        if(rangeType.toUpperCase()=="ALL" || rangeIds==""){				// 选择了全体人员
            openUserRefM('nextReaderId_' + stepId + '=value1&nextReaderName_' + stepId + '=value2&getSavedData=true');
            return;
        }
    }else if(type.toLowerCase()=="ccuser"){		// 抄送人
        rangeType 	= $("#ccUsersRangeType_" + stepId).val();
        rangeIds 	= $("#ccUsersRange_" + stepId).val();

        if(rangeType.toUpperCase()=="ALL" || rangeIds==""){				// 选择了全体人员
            openUserRefM('nextCcUserId_' + stepId + '=value1&nextCcUserName_' + stepId + '=value2&getSavedData=true');
            return;
        }else if(rangeType.toUpperCase()=="GROUP"){
        	openReferenceM('SysUser','userByGroupCc','nextCcUserId_' + stepId + '=value1&nextCcUserName_' + stepId + '=value2&inParams='+rangeIds);
        	return;
        }
    }else if(type.toLowerCase()=="replyobj"){   // 回复对象

    	rangeType 	= $("#replyObjsRangeType_" + stepId).val();
        rangeIds 	= $("#replyObjsRange_" + stepId).val();

        if(rangeType.toUpperCase()=="USER"){
        	openUserRefM('userTypeVal=' + rangeType + '&userIdsVal=' + rangeIds + '&nextReplyObjId_' + stepId + '=value1&nextReplyObjName_' + stepId + '=value2');
        	return;
        }else if(rangeType.toUpperCase()=="DEPT"){
        	openDeptRefM('deptTypeVal=' + rangeType + '&deptIdsVal=' + rangeIds + '&nextReplyObjId_' + stepId + '=value1&nextReplyObjName_' + stepId + '=value2');
        	return;
        }else if(rangeType.toUpperCase()=="GROUP"){
        	openReferenceM('PermUserGroup','groupListByReplyObj','nextReplyObjId_' + stepId + '=value1&nextReplyObjName_' + stepId + '=value2&inParams='+rangeIds);
        	return;
        }else if(rangeType.toUpperCase()=="ROLE"){
        	openReferenceM('PermUserRole','roleListByReplyObj','nextReplyObjId_' + stepId + '=value1&nextReplyObjName_' + stepId + '=value2&inParams='+rangeIds);
        	return;
        }else if(rangeType.toUpperCase()=="ORG"){
        	openReferenceM('SysOrg','groupListByReplyObj','nextReplyObjId_' + stepId + '=value1&nextReplyObjName_' + stepId + '=value2&inParams='+rangeIds);
        	return;
        }else if(rangeType.toUpperCase()=="ALL_ORG"){
        	openReferenceM('SysOrg','getOrg','nextReplyObjId_' + stepId + '=value1&nextReplyObjName_' + stepId + '=value2');
        	return;
        }else{
        	alert("您还未在本步骤设置回复对象的范围，请先在流程定义中设置！");
        	return;
        }

    }
//	// 非全体人员，则先取出范围内的人员的id。再将id作为inParams参数的值传递到参照窗口中
//	if(typeof(wfId)=="undefined" || wfId==null || wfId==""){
//		wfId = -99;
//	}
//	alert("data:" + "userRangeType="+rangeType+"&userRangeIds="+rangeIds+"&wfEntity.id="+wfId);
//	$.ajax({
//		type: "POST",
//		dataType:"json",
//		async:false,
//		url: "wfEntityAction!getUsersIdByRange.shtml",
//		data: "userRangeType="+rangeType+"&userRangeIds="+rangeIds+"&wfEntity.id="+wfId,
//		success: function(data){
//			if(typeof(data.fail)!="undefined"){
//				alert("取得指定范围的人员时出错:" + data.fail);
//				userIds = "err";
//				return;
//			}else{
//				userIds = data;
//			}
//		},
//		error:function (XMLHttpRequest, textStatus, errorThrown) {
//			alert("取得指定范围的人员时出错！");
//			userIds = "err";
//			return;
//		}
//	});
//	if(userIds=="err"){
//		return;
//	}
    if(objIds=="" || objIds==null){
        if(type=="executer"){
            alert("步骤id为：" + stepId + " 没有设置相应的处理人！");
        }else if(type=="reader"){
            alert("步骤id为：" + stepId + " 没有设置相应的传阅人！");
        }else if(type=="ccUser"){
            alert("步骤id为：" + stepId + " 没有设置相应的抄送人！");
        }
    }else{
        if(type=="executer"){		// 选择处理人

            if(rangeType=="DEPTNOCHANGE"){

            	openDeptRefM('deptTypeVal=' + rangeType + '&deptIdsVal=' + rangeIds + '&nextExecuterId_' + stepId + '=value1&nextExecuterName_' + stepId + '=value2');
            }else if(rangeType=="GROUPNOCHANGE"){

            }else if(rangeType=="PRE_STEP_CREATER"){

            	dealerType = $("#dealerType_" + stepId).val();

            	if(dealerType=="DEPT"){
            		openDeptRefM('deptTypeVal=DEPTNOCHANGE&deptIdsVal=' + rangeIds + '&nextExecuterId_' + stepId + '=value1&nextExecuterName_' + stepId + '=value2');
            	}else{
            		openUserRefM('userTypeVal=' + rangeType + '&userIdsVal=' + rangeIds + '&nextExecuterId_' + stepId + '=value1&nextExecuterName_' + stepId + '=value2');
            	}
            }else if(rangeType=="UNDERTAKESTEP_DEALER"){

            	dealerType = $("#dealerType_" + stepId).val();

            	openUserRefM('userTypeVal=' + rangeType + '&userIdsVal=' + rangeIds + '&nextExecuterId_' + stepId + '=value1&nextExecuterName_' + stepId + '=value2');

            }else if(rangeType=="DEPT_ALL_USER"){

            	// 根据当前用户，获取需要展示选择的用户范围（当前人员所在部门和附属部门人员）
            	// 非全体人员，则先取出范围内的人员的id。再将id作为inParams参数的值传递到参照窗口中
//            	$.ajax({
//            		type: "POST",
//            		dataType:"json",
//            		async:false,
//            		url: "wfEntityAction!getUsersIdBydept.shtml",
//            		success: function(data){
//            			if(typeof(data.fail)!="undefined"){
//            				alert("取得指定范围的人员时出错:" + data.fail);
//            				userIds = "err";
//            				return;
//            			}else{
//
//                        		openUserRefM('userTypeVal=USER&userIdsVal=' + data.ids + '&nextExecuterId_' + stepId + '=value1&nextExecuterName_' + stepId + '=value2');
//
//            			}
//            		},
//            		error:function (XMLHttpRequest, textStatus, errorThrown) {
//            			alert("取得指定范围的人员时出错！");
//            			userIds = "err";
//            			return;
//            		}
//            	});
//            	if(userIds=="err"){
//            		return;
//            	}

            	openUserRefM('userTypeVal=USER&userIdsVal=' + rangeIds + '&nextExecuterId_' + stepId + '=value1&nextExecuterName_' + stepId + '=value2');

            }else{
            	openUserRefM('userTypeVal=' + rangeType + '&userIdsVal=' + rangeIds + '&nextExecuterId_' + stepId + '=value1&nextExecuterName_' + stepId + '=value2');
            }

        }else if(type=="reader"){	// 选择传阅人
            openUserRefM('userTypeVal=' + rangeType + '&userIdsVal=' + rangeIds + '&nextReaderId_' + stepId + '=value1&nextReaderName_' + stepId + '=value2');
        }else if(type=="ccuser"){	// 选择抄送人

            openUserRefM('userTypeVal=' + rangeType + '&userIdsVal=' + rangeIds + '&nextCcUserId_' + stepId + '=value1&nextCcUserName_' + stepId + '=value2');
        }
    }
}





/**=========================================================================
 * 		使用ajax方式,取得流程\流程定义\步骤\表单等相关对象的数据
 * 		(本方法暂时没有启用)
 ===========================================================================*/
function initJsonObject(){
    // 取得流程对象WfDefineInfo
    var wfId = $("#wfEntity\\.wfDefineInfo\\.id").val();
    if(isEmpty(wfId)){
        alert("流程对象id不能为空!");
        return;
    }
    /*
     $.getJSON("wfDefineInfoAction!getWfDefineInfoJSON.shtml?wfDefineInfo.id=" + wfId,
     function(data){
     if(typeof(data.fail)!="undefined"){
     alert("取得流程对象WfDefineInfo时出错:" + data.fail);
     return;
     }else{
     wfDefineInfoObj = data.wfDefineInfo;
     }
     }
     );
     */
    $.ajax({
        type: "POST",
        dataType:"json",
        url: "wfDefineInfoAction!getWfDefineInfoJSON.shtml",
        data: "wfDefineInfo.id=" + wfId,
        success: function(data){
            if(typeof(data.fail)!="undefined"){
                alert("取得流程对象WfDefineInfo时出错:" + data.fail);
                return;
            }else{
                wfDefineInfoObj = data.wfDefineInfo;
            }
        },
        error:function (XMLHttpRequest, textStatus, errorThrown) {
            alert("取得流程对象WfDefineInfo时出错");
        }
    });
    // 取得流程详细定义对象WorkFlow
    /*
     $.getJSON("wfDefineInfoAction!getWorkFlowInfoJSON.shtml?wfDefineInfo.id=" + wfId,
     function(data){
     if(typeof(data.fail)!="undefined"){
     alert("取得流程详细定义对象WorkFlow时出错:" + data.fail);
     return;
     }else{
     workFlowObj = data.workFlow;
     }
     }
     );
     */
    $.ajax({
        type: "POST",
        dataType:"json",
        url: "wfDefineInfoAction!getWorkFlowInfoJSON.shtml",
        data: "wfDefineInfo.id=" + wfId,
        success: function(data){
            if(typeof(data.fail)!="undefined"){
                alert("取得流程详细定义对象WorkFlow时出错:" + data.fail);
                return;
            }else{
                workFlowObj = data.workFlow;
            }
        },
        error:function (XMLHttpRequest, textStatus, errorThrown) {
            alert("取得流程详细定义对象WorkFlow时出错");
        }
    });

    // 取得流程步骤定义对象step(包含了表单权限信息)
    var stepId = $("#wfStep\\.stepId").val();
    if(isEmpty(stepId)){
        alert("步骤定义信息id不能为空!");
        return;
    }
    /*
     $.getJSON("wfDefineInfoAction!getStepInfoJSON.shtml?wfDefineInfo.id=" + wfId + "&stepId=" + stepId,
     function(data){
     if(typeof(data.fail)!="undefined"){
     alert("取得流程步骤定义对象step时出错:" + data.fail);
     return;
     }else{
     stepInfoObj = data.step;
     }
     }
     );
     */
    $.ajax({
        type: "POST",
        dataType:"json",
        url: "wfDefineInfoAction!getStepInfoJSON.shtml",
        data: "wfDefineInfo.id=" + wfId + "&stepId=" + stepId,
        success: function(data){
            if(typeof(data.fail)!="undefined"){
                alert("取得流程步骤定义对象step时出错:" + data.fail);
                return;
            }else{
                stepInfoObj = data.step;
            }
        },
        error:function (XMLHttpRequest, textStatus, errorThrown) {
            alert("取得流程步骤定义对象step时出错");
        }
    });

    // 取得表单定义对象信息
    var formId = $("#formDefine\\.id").val();
    if(isEmpty(formId)){
        alert("表单定义信息id不能为空!");
        return;
    }
    /*
     $.getJSON("formDefineAction!getFormDefineJSON.shtml?formDefine.id=" + formId,
     function(data){
     if(typeof(data.fail)!="undefined"){
     alert("取得表单定义对象时出错:" + data.fail);
     return;
     }else{
     formDefineObj = data.formDefine;
     }
     }
     );
     */
    $.ajax({
        type: "POST",
        dataType:"json",
        url: "formDefineAction!getFormDefineJSON.shtml",
        data: "formDefine.id=" + formId,
        success: function(data){
            if(typeof(data.fail)!="undefined"){
                alert("取得表单定义对象时出错:" + data.fail);
                return;
            }else{
                formDefineObj = data.formDefine;
            }
        },
        error:function (XMLHttpRequest, textStatus, errorThrown) {
            alert("取得表单定义对象时出错");
        }
    });
}
/**
 如何判断ajax调用是否已经完成??
 答:通过定时器,不断的去判断结果值是否已返回.返回则说明调用已经完成,则停止定时器;否则继续执行定时器,直至值返回
 例子:
 function test(){
			setTimeout(function(){
				if(wfDefineInfoObj!=null){
					// 执行后续的代码
				}else{
					// 继续调用定时器,判断值是否已返回
					test();
				}
			},200);
		}
 // 启动定时器
 test();
 */




/**--------------------------		word控件操作		-----------------------------*/

// 测试的次数
var tryTimes = 0;

/**
 * 打开ntko文档.
 *
 * 如果是新建的数据（wfEntity.id为空），则文档取自docTemplate模板。
 * 如果不是新建的数据，取文档取自docFile
 *
 * @param {String} docFileType
 */
function openDocFile(docFileType){
    var url = "";

    if(!isDirectSeal && isEmpty($("#wfEntity\\.id").val())){
        // 新建状态.需要直接取模板
        url = "./docTemplateAction!open.shtml?id=" + $("#formDefine\\.docTempId").val();
        TANGER_OCX_OpenDocByType(url);
        $("button#showHidePevisions").show();
    }else{

        // 修改状态,取已有的文档
        var id = $("#wfEntity\\.docDataId").val();
        if(isEmpty(id)){
            alert("对应文档id值docDataId取不到!");
            return;
        }
        url = openDocUrl + "?dataId=" + id + "&dataTable=WF_ENTITY&type=" + docFileType;
        TANGER_OCX_OpenDocByType(url);
        if(docFileType=="ZW"){
            $("button#showHidePevisions").hide();
        }
    }
}


/**
 * 打开ntko文档.(即使打开过，也还在打开)
 *
 * 如果是新建的数据（wfEntity.id为空），则文档取自docTemplate模板。
 * 如果不是新建的数据，取文档取自docFile
 *
 * @param {String} docFileType
 */
function openDocFileAgain(docFileType){
    var url = "";

    if(!isDirectSeal && isEmpty($("#wfEntity\\.id").val())){
        // 新建状态.需要直接取模板
        url = "./docTemplateAction!open.shtml?id=" + $("#formDefine\\.docTempId").val();
        TANGER_OCX_OpenDocByType(url);
        $("button#showHidePevisions").show();
    }else{

        // 修改状态,取已有的文档
        var id = $("#wfEntity\\.docDataId").val();
        if(isEmpty(id)){
            alert("对应文档id值docDataId取不到!");
            return;
        }
        url = openDocUrl + "?dataId=" + id + "&dataTable=WF_ENTITY&type=" + docFileType;
        TANGER_OCX_OpenDocByTypeAgain(url);
        if(docFileType=="ZW"){
            $("button#showHidePevisions").hide();
        }
    }
}

/**
 * 显示office的发文拟稿纸文件
 */
function	openDraftFile(){
    // 已打开，则不再执行打开操作
    if(docFileType=="FAWEN_DRAFT" && TANGER_OCX_bDocOpen==true){
        return;
    }
    $("div#divOfficeContain").show();
    $("div#divPdfContain").hide();

    docFileType = "FAWEN_DRAFT";
    openDocFile("FAWEN_DRAFT");
}

/**
 * 显示pdf的发文拟稿纸移动端手写签批文件
 */
function	openDraftPdFile(){
    // 已打开，则不再执行打开操作
    if(docFileType=="FWZS_MOBILE_PDF" && TANGER_OCX_bDocOpen==true){
        return;
    }
    $("div#divOfficeContain").hide();
    $("div#divPdfContain").show();

    docFileType = "FWZS_MOBILE_PDF";
    openDraftPdfFile();
}

/**
 * 显示office的草稿文件
 */
function	openZwDraftFile(){
    // 已打开，则不再执行打开操作
    if(docFileType=="ZW_DRAFT" && TANGER_OCX_bDocOpen==true){
        return;
    }
    $("div#divOfficeContain").show();
    $("div#divPdfContain").hide();

    docFileType = "ZW_DRAFT";
    openDocFile("ZW_DRAFT");
}
/**
 * 显示office的正式文件
 */
function	openZwFile(){
    // 已打开，则不再执行打开操作
    if(docFileType=="ZW" && TANGER_OCX_bDocOpen==true){
        return;
    }
    $("div#divOfficeContain").show();
    $("div#divPdfContain").hide();

    docFileType = "ZW";
    openDocFile("ZW");
}


/**
 * 根据传入的docFile的id打开docFile文档
 *
 * @param {integer} docFileId	docFile数据的id
 * @return {Boolean}
 */
function openDocTemplateById(id){
    if(typeof(id)=="undefined"){
        alert("openDocTemplateById()时,id参数不能为空！");
        return false;
    }
    //获取原模板中"正文"书签对应的文本
	var bookmark="正文";
	var text=TANGER_OCX_getBookMarkValue(bookmark);
	markList = new Array();// 模板切换是，先情况系统的书签数组
    url = "./docTemplateAction!open.shtml?id=" + id;
    isSynStatus=false;	//关闭word书签同步到表单
    TANGER_OCX_OpenDocByType(url);
	setTimeout(function(){
		//设置文本到新模板中
		//text.replace(/(\s*$)/g, "") 将正文内容的右侧空格去除
		if(!isEmpty(text)){
			TANGER_OCX_setBookMarkValue(bookmark,"    "+text.trim());
		}
		if($.isArray(markList)&&markList.length>0){
            markList.length=0;
            TANGER_OCX_getMarkList();
        }
	},3000);
}

/**
 * 根据传入的docFile的id打开docFile文档
 *
 * @param {integer} docFileId	docFile数据的id
 * @return {Boolean}
 */
function openDocFileById(id){
    if(typeof(id)=="undefined"){
        alert("调用openDocFileById()时,id参数不能为空！");
        return false;
    }
    url = openDocUrl + "?docFile.id=" + id + "&dataTable=WF_ENTITY&type=" + docFileType;
    TANGER_OCX_OpenDocByType(url);
    setTimeout("TANGER_OCX_ShowRevisions()",1000);
}
/**
 * 异步打开文档后(常用的),	在TANGER_OCX_OpenDoc()后触发
 *
 * TODO:	没有根据步骤的操作权限来设置相应的状态
 *
 * @param {} doc		打开的文档对象
 */
function ntko_AfterOpenFromURL(doc){
	TANGER_OCX_InterceptWps();
    TANGER_OCX_SetDocUser($("#cur_userName").val());

	if($("#wfEntity\\.status").val()==="CREATED"){
		TANGER_OCX_OBJ.Titlebar=false;
	}else{
		 //将word的标题栏、工具栏、菜单栏都隐藏
		TANGER_OCX_OBJ.Titlebar=false;
		TANGER_OCX_OBJ.Toolbars=false;
		TANGER_OCX_OBJ.Menubar=false;
	}

    TANGER_OCX_OBJ.Titlebar=true;
    TANGER_OCX_OBJ.Toolbars=true;
	TANGER_OCX_OBJ.Menubar=true;
    //TANGER_OCX_OBJ.WebFileName=filePath;

    //添加意见处理结果到批示流程中的 “办理结果”中
	// TODO 吴国算注释@20150709 老版批示流程停用，相关个性化配置去除【开始】
//    if(($("#wfEntity\\.status").val()=="RUNNING" && $("#wfStep\\.stepName") != "办理部门")){
//    	addDoResultMark("RUNNING");
//    }
	// TODO 吴国算注释@20150709 老版批示流程停用，相关个性化配置去除【结束】

    if(_conflictState=="YES"){

   	   // 设置为只读
       TANGER_OCX_SetReadOnly(true);
    }else{

    	if (_editState== "modify"
            && $("#operatePerm\\.canWordModifyDoc").val()=="true") {

            //锁定文档
            conflict();

            if($("#wfStep\\.stepId").val().toLowerCase()=="node_start"){	// 开始步骤，不需要有痕迹保留功能
                // 关闭修订模式(取消修改痕迹保留模式)

                //当wfEntity.id不存在时，表示第一次新建发文流程，此时不需要保留痕迹
                //当在流程中文档被退回到第一步时，需要开启保留痕迹的功能
                var entityId = $("#wfEntity\\.id").val();
                if(entityId==""){
                    TANGER_OCX_SetReviewMode(false);
                }else{
                    TANGER_OCX_SetReviewMode(true);
                }

                // 不显示审阅工具栏
                TANGER_OCX_EnableReviewBar(false);
            }else{
                // 打开修订模式(进入修改痕迹保留模式)
                TANGER_OCX_SetReviewMode(true);
                // 不显示审阅工具栏
                TANGER_OCX_EnableReviewBar(false);
            }

            // 延迟0.5秒钟后，执行word书签同步工作。不延迟的话，不能正确同步
            setTimeout(function(){
                // 将表单中的值赋给word书签
                var labelsTemp = TANGER_OCX_getMarkList();

                var labelsArr = new Array();

                for(var y=0;y<labelsTemp.length;y++){
                	//alert("读取的word书签："+labelsTemp[y]);
                	labelsArr[y]=labelsTemp[y];
                }

                var flag = false;
                for(var x=0;x<labelsArr.length;x++){
                	if(labelsArr[x]=="来文机关1"){
                     	labelsArr = removeElement(x,labelsArr);
                     	flag = true;
                	}
                }

                if(flag){
                	for(var y=0;y<labelsArr.length;y++){
                    	if(labelsArr[y]=="来文机关"){
                    		labelsArr[y] = labelsArr[y]+";来文机关1";
                    	}
                    }
                }

                for(var i=0; i < labelsArr.length; i++){
                    var label = labelsArr[i];
                    $("[txtwordlabel='" + label + "']",$("div#divForm")).each(function(){
                        var value = $(this).val();
                        //alert("label:" + label + "     value:" + value);
                        TANGER_OCX_setBookMarkValue(label,value);
                    });
                }
            },500);
        } else {
            // 设置为只读
            TANGER_OCX_SetReadOnly(true);
        }
    }

    // 延迟0.5秒钟后，执行word书签同步工作。不延迟的话，不能正确同步
    setTimeout(function(){
	    if(isOpenZw){

	    	// 如果前一步骤是移动端处理，则PC端打开先显示“全文手写签批”
	    	if($("#wfStepUser\\.preDealerAddress").val()=="1"){

	    		alert("移动端有修改正文，请查看全文签批文档！");
	    		isOpenZw = false;

	    	}
	    }

    },1000);
}
/**
 * 检验字符串中是否包含数字（是返回true,不是返回false）
 * @param para
 * @returns {Boolean}
 */
function checknumber(para)
{
    var Letters = "1234567890";
    var i;
    var c;
    for( i = 0; i < para.length; i ++ )
    {
        c = String.charAt(i);
        if (Letters.indexOf(c) >= 0)
        {
            return true;
        }
    }
    return false;
}

/**
 * 数组中彻底删除某一项内容
 * @param index  下标
 * @param array  数组
 * @returns 删除后数组
 */
function removeElement(index,array){
    if(index >= 0 && index < array.length){
        for(var i=index; i<array.length;i++){
	        array[i]=array[i+1];
	    }
	    array.length = array.length-1;
    }
    return array;
}

/**
 * 同步打开文档后,			在TANGER_OCX_OpenDocFromUrl()后触发
 *
 * @param {} TANGER_OCX_str		文档路径或者URL
 * @param {} TANGER_OCX_obj		文档的自动化接口。比如，对于一个Word文档，是一个Word.Document对象
 */
function ntko_OnDocumentOpened(TANGER_OCX_str,TANGER_OCX_obj){
    TANGER_OCX_ShowRevisions(false);	//默认打开文档后不显示修订痕迹，可以通过点击“显示/隐藏痕迹”切换;
}
/**
 * 文档关闭后,				在TANGER_OCX_OBJ.SaveToURL()后触发
 */
function ntko_OnDocumentClosed(){
}
/**
 * 转换并保存后pdf后,		在TANGER_OCX_OBJ.PublishAsPDFToURL()后触发
 *
 * @param {} ret		返回信息
 * @param {} code		返回代码
 */
function ntko_AfterPublishAsPDFToURL(ret,code){
}
/**
 * 当控件被激活或者不激活后
 *
 * @param {} isActivated	是否激活
 */
function ntko_OnDocActivated(isActivated){
}

/**
 * 保存文档
 */
function saveDocFile(){
    if(TANGER_OCX_OBJ==null || TANGER_OCX_bDocOpen==false){
        alert("未打开过ntko控件,不执行保存操作!");
        return false;
    }
    var id = $("#wfEntity\\.docDataId").val();
    if(isEmpty(id)){
        alert("对应文档id值docDataId取不到!");
        return false;
    }
    TANGER_OCX_OBJ.IsUseUTF8Data = true;
    TANGER_OCX_OBJ.IsUseUTF8URL = true;

    // 保存的时候获取文档总页数
    var pagenum;
    var url;
    if(TANGER_OCX_OBJ!=null && TANGER_OCX_OBJ.ActiveDocument!=null&&TANGER_OCX_OBJ.ActiveDocument.Application.Selection!=null){
    	pagenum = TANGER_OCX_OBJ.ActiveDocument.Application.Selection.Information(4);
    	// 保存的文档类型放在docFileType变量 中。未发布（结束）前：ZW_DRAFT，之后：ZW，并同时生成ZW_PDF。	如果需要调用一次，就生成一个文件，请加参数： "&newVer=1"
        url = "docFileAction!saveDoc.shtml?dataId=" + id + "&dataTable=WF_ENTITY&type=" + docFileType+"&pageNum="+pagenum;
    }else{
    	// 保存的文档类型放在docFileType变量 中。未发布（结束）前：ZW_DRAFT，之后：ZW，并同时生成ZW_PDF。	如果需要调用一次，就生成一个文件，请加参数： "&newVer=1"
        url = "docFileAction!saveDoc.shtml?dataId=" + id + "&dataTable=WF_ENTITY&type=" + docFileType;

    }


    // 保存的文档类型放在docFileType变量 中。未发布（结束）前：ZW_DRAFT，之后：ZW，并同时生成ZW_PDF。	如果需要调用一次，就生成一个文件，请加参数： "&newVer=1"
    //var url = "docFileAction!saveDoc.shtml?dataId=" + id + "&dataTable=WF_ENTITY&type=" + docFileType+"&pageNum="+pagenum;

    // 不是正式文件类型的文件，每次都保存为一个版本
    //TODO:添加收文合并件 add zhouzz 20130517
    if( !(docFileType.toUpperCase()=="ZW" || docFileType.toUpperCase()=="SW_MERGER") ){
        url += "&newVer=1";
    }
    //var  rtn = TANGER_OCX_OBJ.SaveToURL(url,"uploadFile","","new.doc","wfEntityForm")
    var rtn = TANGER_OCX_SaveDoc(url);

    // 保存错误
    if(rtn.indexOf("fail")>=0){
        alert(rtn);	//提示错误信息
        return false;
    }

    return true;
}

/**
 * 打印文档
 */
function PrintDoc(){
    if(confirm("你确认要打印本文档吗？")==false){
        return;
    }
    //记录下痕迹保留状态、只读状态
    var isTrackRevisions;
    var oriReadOnly = isReadOnly;
    var bkmkObj;
    try{
        // 设置为非只读状态
        TANGER_OCX_SetReadOnly(false);
        isTrackRevisions = TANGER_OCX_OBJ.ActiveDocument.TrackRevisions;
        TANGER_OCX_SetMarkModify(false);  	//设置为非痕迹保留，否则执行以下delete()时会出错！
        TANGER_OCX_PrintDoc();
        TANGER_OCX_SetMarkModify(true);
        //alert("打印结束");
    }catch(err){
    }finally{
        TANGER_OCX_SetMarkModify(isTrackRevisions);
        TANGER_OCX_SetReadOnly(oriReadOnly);
    }
}

/**
 * 打印表单内容
 */
function opt_printForm(){
//	if(confirm("你要打开表单内容打印窗口吗？")==false){
//		return;
//	}
    //临时存放form的action值，为后面恢复用
	var wfEntityId=$("#wfEntity\\.id").val();
	if( !isEmpty(wfEntityId)){
		var formAction=$("form").eq(0).attr("action");
	    var winName = getNewWinName();
	    $("form").eq(0).attr("action","wfStepUserAction!getHistorForPrint.shtml").attr("target",winName);
	    openNewWin("",null,null,winName);

	    $("form").eq(0).submit();
	    // 恢复默认打开的窗口
	    $("form:eq(0)").attr("target","");
	    //恢复原form的action值
	    $("form").eq(0).attr("action",formAction);
	    //$("#" + domainName + "\\.id").val("");
	}else{
		alert("流程还未创建无法打印");
	}
}

//TODO 吴国算注释@20150709 老版批示流程停用，相关个性化配置去除【开始】
//function opt_seeDianZiJ(){
//
//	var flagDianZi = $("#dianZiDealFileType").val();
//	if(!isEmpty(flagDianZi) && flagDianZi=="SW_BJ"){
//		opt_printQingShi('SW_BJ');
//	}else if(!isEmpty(flagDianZi) && flagDianZi=="SW_YJ"){
//		opt_printQingShi('SW_YJ');
//	}else if(!isEmpty(flagDianZi) && flagDianZi=="SW_QSJ"){
//		opt_printQingShi('SW_QSJ');
//	}else if(!isEmpty(flagDianZi) && flagDianZi=="SW_GWYLW"){
//		opt_printQingShi('SW_GWYLW');
//	}
//}
//
//function opt_seeLDSXJ(){
//
//	var flagLD = $("#nbStepDealFileType").val();
//	if(!isEmpty(flagLD) && flagLD=="SW_BJ_DRAFT"){
//		opt_printQingShi('SW_BJ_DRAFT');
//	}else if(!isEmpty(flagLD) && flagLD=="SW_YJ_DRAFT"){
//		opt_printQingShi('SW_YJ_DRAFT');
//	}else if(!isEmpty(flagLD) && flagLD=="SW_QSJ_DRAFT"){
//		opt_printQingShi('SW_QSJ_DRAFT');
//	}else if(!isEmpty(flagLD) && flagLD=="SW_GWYLW_DRAFT"){
//		opt_printQingShi('SW_GWYLW_DRAFT');
//	}
//}
//
//function opt_seeYj(){
//	opt_printQingShi('SW_YJ');
//}
//
//function opt_seeGwylw(){
//	opt_printQingShi('SW_GWYLW');
//}
///**
// * 打印请示件
// * fileTypePara:办理单类型
// * isReadFlg:是否只读（“”：需要判断  “YES”:只读  “NO”:可读写  “WRITE”:可写，无其他操作）
// */
//function opt_printQingShi(fileTypePara,isReadFlg){
//    var cur_orgId=$("#cur_orgId").val();
//    var para=dealDocument["orgId_"+cur_orgId][fileTypePara];
//    //alert(para);
//    if(isEmpty(para)){
//        alert("未配置对应单位的处理单信息，请联系管理员处理!");
//        return;
//    }
//    //	if(confirm("你要打开表单内容打印窗口吗？")==false){
//    //	return;
//    //}
//    //临时存放form的action值，为后面恢复用
//    var formAction=$("form").eq(0).attr("action");
//    var winName = getNewWinName();
//    var isReadPara = "";
//    if(isEmpty(isReadFlg)){
//    	if($('#wfStep\\.stepName').length > 0 && ( $('#wfStep\\.stepName').val()=="拟办" || $('#wfStep\\.stepName').val()=="批示" || $('#wfStep\\.stepName').val()=="传阅")){
//        	isReadPara = "NO";
//        }else if($('#wfStep\\.stepName').length > 0 && ($('#wfStep\\.stepName').val()=="收文登记" || $('#wfStep\\.stepName').val()=="返回收文登记")) {
//
//        	if(fileTypePara.indexOf('_DRAFT')>0){
//        		//alert("OK");
//        		isReadPara = "YES";
//        	}else{
//        		isReadPara = "WRITE";
//        	}
//
//        }else{
//        	isReadPara = "YES";
//        }
//    }else{
//    	isReadPara = isReadFlg;
//    }
//
//    if($('#wfEntity\\.id').length > 0 && !isEmpty($('#wfEntity\\.id').val())){
//
//    	$("#bianhao").val($('#f_shouwenwenhao').val());
//    	$("#shouwenriqi").val($('#f_shouwenriqi').val());
//    	$("#laiwenbiaoti").val($('#f_wenjianbiaoti').val());
//    	$("#zihao").val($('#f_laiwenwenhao').val());
//    	$("#beizhu").val($('#f_chaosongdanwei').val());
//    	$("#laiwenjiguan").val($('#f_laiwenjiguan').val());
//    	$("#jinjichengdu").val($('#f_jinjichengdu').val());
//    	$("#yinfafenshu").val($('#f_yinfafenshu').val());
//    }else{
//    	$("#bianhao").val($('#f_shouwenwenhao').val());
//    	$("#shouwenriqi").val($('#f_shouwenriqi').val());
//    	$("#laiwenbiaoti").val($('#f_wenjianbiaoti').val());
//    	$("#zihao").val($('#f_laiwenwenhao').val());
//    	$("#beizhu").val($('#f_chaosongdanwei').val());
//    	$("#laiwenjiguan").val($('#f_laiwenjiguan').val());
//    	$("#jinjichengdu").val($('#f_jinjichengdu').val());
//    	$("#yinfafenshu").val($('#f_yinfafenshu').val());
//    }
//    $("form").eq(0).attr("action","wfStepUserAction!getQingShiForPrint.shtml?wordTemplateId="+para+"&fileType="+fileTypePara+"&stepNameNow="+isReadPara).attr("target",winName);
//    openNewWin("",null,null,winName);
//
//    $("form").eq(0).submit();
//    // 恢复默认打开的窗口
//    $("form:eq(0)").attr("target","");
//    //恢复原form的action值
//    $("form").eq(0).attr("action",formAction);
//    //$("#" + domainName + "\\.id").val("");
//
//}
//TODO 吴国算注释@20150709 老版批示流程停用，相关个性化配置去除【结束】

/**
 * 打印舆论监督事项相关内容
 * fileTypePara:办理单类型
 * isReadFlg:是否只读（“”：需要判断  “YES”:只读  “NO”:可读写  “WRITE”:可写，无其他操作）
 */
function opt_printFormYljd(fileTypePara,isReadFlg){

    var para;

    if(fileTypePara=="YLJD_BSD"){
    	para = 87;
    }else if(fileTypePara=="YLJD_JBD"){
    	para = 88;
    }else{
    	alert("办理单类型不能为空!");
        return;
    }

    //临时存放form的action值，为后面恢复用
    var formAction=$("form").eq(0).attr("action");
    var winName = getNewWinName();
    var isReadPara = "";

    if(!isEmpty(isReadFlg)){
    	isReadPara = isReadFlg;
    }else{
    	isReadPara = "YES";
    }

    $("form").eq(0).attr("action","wfStepUserAction!getYljdForPrint.shtml?wordTemplateId="+para).attr("target",winName);
    openNewWin("",null,null,winName);

    $("form").eq(0).submit();
    // 恢复默认打开的窗口
    $("form:eq(0)").attr("target","");
    //恢复原form的action值
    $("form").eq(0).attr("action",formAction);

}

/**
 * 打印发文拟稿纸
 */
function opt_printFormFaWen(){
	var wfEntityId=$("#wfEntity\\.id").val();
	if( !isEmpty(wfEntityId)){
		 //临时存放form的action值，为后面恢复用
	    var formAction=$("form").eq(0).attr("action");
	    var winName = getNewWinName();
	    $("form").eq(0).attr("action","wfStepUserAction!getFaWenForPrint.shtml?wordTemplateId=41").attr("target",winName);
	    openNewWin("",null,null,winName);

	    $("form").eq(0).submit();
	    // 恢复默认打开的窗口
	    $("form:eq(0)").attr("target","");
	    //恢复原form的action值
	    $("form").eq(0).attr("action",formAction);
	    //$("#" + domainName + "\\.id").val("");
	}else{
		alert("流程还未创建无法打印");
	}
}

/**
 * 打印公开审批流程
 */
function opt_printFormPublicShenPi(){
	var wfEntityId=$("#wfEntity\\.id").val();
	if(!isEmpty(wfEntityId)){
		//临时存放form的action值，为后面恢复用
	    var formAction=$("form").eq(0).attr("action");
	    var winName = getNewWinName();
        var orgId=$("#cur_orgId").val();
        var templateId=dealDocument["orgId_"+orgId]["PUBLIC_SHENGPI"];
	    $("form").eq(0).attr("action","wfStepUserAction!getPublicShenPiForPrint.shtml?wordTemplateId="+templateId).attr("target",winName);
	    openNewWin("",null,null,winName);

	    $("form").eq(0).submit();
	    // 恢复默认打开的窗口
	    $("form:eq(0)").attr("target","");
	    //恢复原form的action值
	    $("form").eq(0).attr("action",formAction);
	    //$("#" + domainName + "\\.id").val("");
	}else{
		alert("流程还未创建无法打印");
	}
}

/**
 * 增加ntko控件高度
 */
function	addOfficeControlHeight(){
    $("div#divOfficeContain").height($("div#divOfficeContain").height() + 200);
    $("#TANGER_OCX").height($("#TANGER_OCX").height() + 200);
}
/**
 * 减少ntko控件高度
 */
function	subOfficeControlHeight(){
    $("div#divOfficeContain").height($("div#divOfficeContain").height() - 200);
    $("#TANGER_OCX").height($("#TANGER_OCX").height() - 200);
}
/**--------------------------		end___word控件操作		-----------------------------*/


/**--------------------------		pdf控件操作		-----------------------------*/
/**
 * 打开当前流程实例的pdf文档
 */
function	openPdfFile(){
    var url = "";
    if(_editState!="modify"){	// 不是修改状态，不能显示pdf文件上传域
        $("#uploadFile_containt").hide();
    }
    if(!isEmpty($("#wfEntity\\.id").val())){
        // 修改状态,取已有的文档
        var id = $("#wfEntity\\.docDataId").val();
        if(isEmpty(id)){
            alert("对应文档id值docDataId取不到!");
            return;
        }
        // 移动办公，先检查有无移动端回传的，有的话显示移动端回传的，再看ZW_PDF的是否存在
        url = openDocUrl + "?dataId=" + id + "&dataTable=WF_ENTITY&type=ZWZS_MOBILE_PDF";
        //判断docFile是否存在，不存在不打开pdf djj 20110908
        $.getJSON("./docFileAction!getDocFileForJson.shtml?dataId=" + id + "&dataTable=WF_ENTITY&type=ZWZS_MOBILE_PDF", function(data){
            if(typeof(data.fail)!="undefined"){

            	url = openDocUrl + "?dataId=" + id + "&dataTable=WF_ENTITY&type=ZW_PDF";
            	$.getJSON("./docFileAction!getDocFileForJson.shtml?dataId=" + id + "&dataTable=WF_ENTITY&type=ZW_PDF", function(data){
                    if(typeof(data.fail)!="undefined"){
                    	return;
                    }else{
                        data;//写这行代码的目的是：若不写这行代码，下面的代码将不执行
                        setPdfControlProp(url);
                        // 用于标识系统已经有了pdf文件，可以不再上传
                        isExistedPdfFile = true;
                    }
                });

            	return;
            }else{
                data;//写这行代码的目的是：若不写这行代码，下面的代码将不执行
                setPdfControlProp(url);
                // 用于标识系统已经有了pdf文件，可以不再上传
                isExistedPdfFile = true;
            }
        });

    }
}

/**
 * 打开当前流程实例的pdf文档
 */
function	openDraftPdfFile(){
    var url = "";
    if(_editState!="modify"){	// 不是修改状态，不能显示pdf文件上传域
        $("#uploadFile_containt").hide();
    }
    if(!isEmpty($("#wfEntity\\.id").val())){
        // 修改状态,取已有的文档
        var id = $("#wfEntity\\.docDataId").val();
        if(isEmpty(id)){
            alert("对应文档id值docDataId取不到!");
            return;
        }
        url = openDocUrl + "?dataId=" + id + "&dataTable=WF_ENTITY&type=FWZS_MOBILE_PDF";
        //判断docFile是否存在，不存在不打开pdf djj 20110908
        $.getJSON("./docFileAction!getDocFileForJson.shtml?dataId=" + id + "&dataTable=WF_ENTITY&type=FWZS_MOBILE_PDF", function(data){
            if(typeof(data.fail)!="undefined"){
                return;
            }else{
                data;//写这行代码的目的是：若不写这行代码，下面的代码将不执行
                setPdfControlProp(url);
                // 用于标识系统已经有了pdf文件，可以不再上传
                isExistedPdfFile = true;
            }
        });
    }
}

/**
 * 显示pdf格式的正文文件
 */
function	openZwPdfFile(){
    // 已打开，则不再执行打开操作
    if($("div#divPdfContain").css("display")!="none" && docFileType=="ZW_PDF"){
        return;
    }
    // 需要判断一下相应的文件是否存在
    $("div#divOfficeContain").hide();
    $("div#divPdfContain").show();

    docFileType = "ZW_PDF";
    openPdfZwFile();
}

/**
 * 显示ZW正式文件转换而来的ZW_PDF文件
 */
function openPdfZwFile(){

	var url = "";
    if(_editState!="modify"){	// 不是修改状态，不能显示pdf文件上传域
        $("#uploadFile_containt").hide();
    }
    if(!isEmpty($("#wfEntity\\.id").val())){
        // 修改状态,取已有的文档
        var id = $("#wfEntity\\.docDataId").val();
        if(isEmpty(id)){
            alert("对应文档id值docDataId取不到!");
            return;
        }
        url = openDocUrl + "?dataId=" + id + "&dataTable=WF_ENTITY&type=ZW_PDF";
        //判断docFile是否存在，不存在不打开pdf djj 20110908
        $.getJSON("./docFileAction!getDocFileForJson.shtml?dataId=" + id + "&dataTable=WF_ENTITY&type=ZW_PDF", function(data){
            if(typeof(data.fail)!="undefined"){
                return;
            }else{
                data;//写这行代码的目的是：若不写这行代码，下面的代码将不执行
                setPdfControlProp(url);
                // 用于标识系统已经有了pdf文件，可以不再上传
                isExistedPdfFile = true;
            }
        });
    }
}

/**
 * 保存当前流程实例的版式文件pdf文档
 */
function saveBsPdfFile(){

    var id = $("#wfEntity\\.docDataId").val();
    if(isEmpty(id)){
        alert("对应文档id值docDataId取不到!");
        return false;
    }
    // 选择了pdf文件，则进行pdf保存(ajax方式)
    if($("#uploadFile").length>0 && !isEmpty($("#uploadFile").val().trim())){


        /**=====================================================================================================================
         *
         *		 调用saveDocAjax()方法需要的参数：
         * 			dataTable:	文件所属表格
         * 			dataId:		文件对应数据的id
         * 			success:	保存成功时调用的方法，默认为：uploadSuccess，系统输出为"<script>parent.方法名(id)</script>"，
         * 							调用页面上的uploadSuccess()方法，或是本参数指定的方法名。
         * 			error:		保存成功时调用的方法，默认为：uploadFail，系统输出为"<script>parent.方法名()</script>"，
         * 							调用页面上的uploadFail()方法，或是本参数指定的方法。
         * =====================================================================================================================**/

        var surl = "docFileAction!saveBsDocAjax.shtml?dataId=" + id + "&dataTable=WF_ENTITY&type=ZW_PDF&newVer=0" +
            "&success=uploadSuccess&fail=uploadFail&isZwBsPdf=true";


        ajaxUpload(surl,"uploadFile");

    }else{
        alert("请先上传版式pdf文件！！");
    }

    return true;

}


/**
 * 保存当前流程实例的pdf文档
 */
function	savePdfFile(){
    var id = $("#wfEntity\\.docDataId").val();
    if(isEmpty(id)){
        alert("对应文档id值docDataId取不到!");
        return false;
    }
    // 选择了pdf文件，则进行pdf保存(ajax方式)
    if($("#uploadFile").length>0 && !isEmpty($("#uploadFile").val().trim())){


        /**=====================================================================================================================
         *
         *		 调用saveDocAjax()方法需要的参数：
         * 			dataTable:	文件所属表格
         * 			dataId:		文件对应数据的id
         * 			success:	保存成功时调用的方法，默认为：uploadSuccess，系统输出为"<script>parent.方法名(id)</script>"，
         * 							调用页面上的uploadSuccess()方法，或是本参数指定的方法名。
         * 			error:		保存成功时调用的方法，默认为：uploadFail，系统输出为"<script>parent.方法名()</script>"，
         * 							调用页面上的uploadFail()方法，或是本参数指定的方法。
         * =====================================================================================================================**/

        var surl = "docFileAction!saveDocAjax.shtml?dataId=" + id + "&dataTable=WF_ENTITY&type=ZW_PDF&newVer=0" +
            "&success=uploadSuccess&fail=uploadFail";


        ajaxUpload(surl,"uploadFile");


        // 开始上传文件
//		$("#loading").ajaxStart(function(){
//				$(this).show();
//			}).ajaxComplete(function(){
//				$(this).hide();
//		});
//		$.ajaxFileUpload({
//			url			: url,
//			secureuri	: false,
//			fileElementId: 'uploadFile',
//			dataType	: 'json',
//			success: function (data,status){
//				if(typeof(data.fail) != 'undefined'){
//					isSuccessSavedPdf = false;
//					alert("保存pdf文件时出错：" + data.fail);
//				}else{
//					isSuccessSavedPdf = true;
//					alert("pdf文件保存成功：" + data.docId);
//				}
//			},
//			error: function (data, status, e){
//				alert("保存pdf文件时出错！！");
//			}
//		});
    }else{
        alert("请你先选择一个pdf文件！！");
    }

    return true;
}
/**
 * ajax上传文件功能
 *
 * 实现方式：生成一个隐藏iframe，同时生成一个form（其target为隐藏的iframe），提交这个form即上传文件
 *
 * @param {} url				上传文件action的url地址。如果有其它参数，也请编写在url中
 * @param {} uploadFileId		文件上传域的id
 */
function ajaxUpload(surl,uploadFileId){
    var id = new Date().getTime();
    var frameId = "frame_" + id;

    // <!--		隐藏的iframe，用于ajax方式的上传附件（PDF）		-->
    var $frame = $('<iframe name="' + frameId + '" id="' + frameId + '" style="display:none;"></iframe>');
    $frame.appendTo("body");


    // 用于上传文件的form
    var $form = $('<form name="pdfForm" id="pdfForm" action="" method="post" enctype="multipart/form-data" encoding="multipart/form-data"></form>');


    var $oldElement = $('#' + uploadFileId);
    var $newElement = $($oldElement).clone();

    $newElement.val($oldElement.val());
    $newElement.attr("id","upload_" + id);
    $oldElement.before($newElement);
    $oldElement.appendTo($form);

    $form.appendTo("body");


    // 执行文件上传
    $form.attr("action",surl);
    $form.attr("target",frameId);
    $form.submit();

    // 移回去
    $newElement.after($oldElement);

    // 清除刚才生成的临时form
    $newElement.remove();
    $form.remove();

    // 不能删除iframe，否则会导致uploadSuccess()回调方法执行错误
    //$frame.remove();
}

function uploadSuccess(type,id){
    isSuccessSavedPdf = true;
    alert("文件上传成功！");
}

function uploadFail(){
    alert("文件上传失败！");
}


/**
 * 设置pdf控件的文件来源，并显示控件
 *
 * @param {string} src	pdf文件的路径或是url地址
 */
function	setPdfControlProp(src){
    if(typeof(src)=="undefined" || src==null || src==""){
        return;
    }
    var pdfObj=document.getElementById("pdfActivexObj");
    pdfObj.src = src;		// pdf文件的来源，可以为本地硬盘的文件，如：c:\test.pdf 或是一个可以输出pdf文件流的 url地址
    pdfObj.height="800";	// 控件的高度
    pdfObj.border=1;
}
/**--------------------------		end____pdf控件操作		-----------------------------*/



/**********----------管理员功能收回退回用 【暂时不用】start------------*********/
//收回（管理员用）
function opt_revokeForManager() {
    getCanRevokeUser();
    dialog("收回执行人", "id:optRevokeForManager", "800px", "auto", "text");
}
//取得可执行收回的人员（管理员用）
function getCanRevokeUser(){
    var wfEntityId=document.getElementById("wfEntity.id").value;
    var stringhtml =new Array();
    var url="./wfEntityAction!getCanRevokeUserForManager.shtml?wfEntity.id="+wfEntityId+"&r="+Math.random();
    $.getJSON(url,function(data){
        var type="'wfStepUser'";
        stringhtml.push("<select name=\"revokeExeUserId\" id=\"revokeExeUserId\" style=\"width:150px;\" size=\"1\"><option value=\"\">==请选择==</option>");
        $(data.canRevokeUserList).each(function(pend){
            stringhtml.push("<option value=\""+this.id+"\"  title=\""+this.wfStep.stepName+"_"+this.userName+"\">"
                +this.wfStep.stepName+"_"+this.userName+"</option>");

        });
        stringhtml.push("</select>");
        $("#revokeExeUserId").replaceWith(stringhtml.join(""));
    });
}
// 收回（管理员用）
function revokeForManagerOk() {

    if(isEmpty($("#revokeExeUserId").val())){
        alert("收回执行人不能为空！");
        return false;
    }

    setDialogHide();

    openWaitDialog("正在执行[收回]功能，请您稍候.....");

    //赋值
    $("#wfEntityNextExecuteDTO\\.wfStepUserIdForManager").val($("#revokeExeUserId").val());

    $("form").eq(0).attr("action",actName + '!revokeForManager.shtml');
    $("form").eq(0).submit();
}


////退回（管理员用）
//function opt_returnForManager() {
//	getCurrentWfStepUsers();
//	dialog("退回执行人", "id:optToReturnForManager", "800px", "auto", "text");
//}
//取得可执行退回的人员（即取得当前处理人）（管理员用）
function getCurrentWfStepUsers(){
    var wfEntityId=$("#wfEntity\\.id").val();
    var stringhtml =new Array();
    var url="./wfEntityAction!getHistoryWfStepUsers.shtml?wfEntity.id="+wfEntityId+"&r="+Math.random();
    $.getJSON(url,function(data){
        var type="'wfStepUser'";
        stringhtml.push("<select name=\"returnExeUserId\" id=\"returnExeUserId\" onChange=\"changeUser();\"  style=\"width:150px;\" size=\"1\"><option value=\"\">==请选择==</option>");
        $(data.currentWfStepUserList).each(function(pend){
            stringhtml.push("<option value=\""+this.id+"\"  title=\""+this.wfStep.stepName+"_"+this.userName+"\">"
                +this.wfStep.stepName+"_"+this.userName+"</option>");

        });
        stringhtml.push("</select>");
        $("#returnExeUserId").replaceWith(stringhtml.join(""));
        
    });
}
//根据执行人的不同，显示不同的可退回到的人员（管理员用）
function changeUser(){
    var userId=$("#returnExeUserId").val();
    var wfEntityId=$("#wfEntity\\.id").val();
    if(isEmpty(userId)){
        alert("执行人不能为空！");
        return false;
    }
    var stringhtml =new Array();
    var url="./wfEntityAction!getCanReturnUser.shtml?wfEntity.id="+wfEntityId+"&wfEntityNextExecuteDTO.wfStepUserIdForManager="+userId+"&r="+Math.random();
    $.getJSON(url,function(data){
        var type="'wfStepUser'";
        stringhtml.push("<select name=\"returnUserIdForManager\" id=\"returnUserIdForManager\" style=\"width:150px;\" size=\"1\"><option value=\"\">==请选择==</option>");
        $(data.canReturnUserList).each(function(pend){
            stringhtml.push("<option value=\""+this.id+"\"  title=\""+this.wfStep.stepName+"_"+this.userName+"\">"
                +this.wfStep.stepName+"_"+this.userName+"</option>");

        });
        stringhtml.push("</select>");
        $("#returnUserIdForManager").replaceWith(stringhtml.join(""));
    });
}

// 退回（管理员用）
function returnForManagerOk() {

    if(isEmpty($("#returnExeUserId").val())){
        alert("退回执行人不能为空！");
        return false;
    }
    if(isEmpty($("#returnUserIdForManager").val())){
        alert("被退回人不能为空！");
        return false;
    }

    setDialogHide();

    openWaitDialog("正在执行[退回]功能，请您稍候.....");

    //赋值
    $("#wfEntityNextExecuteDTO\\.wfStepUserIdForManager").val($("#returnExeUserId").val());
    $("#wfEntityNextExecuteDTO\\.returnWfStepUserId").val($("#returnUserIdForManager").val());
    if(!isEmpty($("#revokeOpinion").val())){
        $("#wfEntityNextExecuteDTO\\.opinion").val($("#returnOpinion").val());
    }

    $("form").eq(0).attr("action",actName + "!toReturnForManager.shtml");
    $("form").eq(0).submit();
}
/**********----------管理员功能收回退回用 【暂时不用】end------------*********/

/*********-----------在表单处理页面的office控件中显示办理结果的信息 start-------------************/
////TODO 吴国算注释@20150709 老版批示流程停用，相关个性化配置去除【开始】
//function addDoResultMark(status){
////================================================
////			返回的json数据格式
////
////		/**	步骤名称	**/
////		private String stepName;
////		/**	人员类型：EXECUTER处理人,READER传阅人	**/
////		private String userType;
////		/**	人员姓名	**/
////		private String userName;
////		/**	处理时间		**/
////		private String executeTime;
////		/**	处理意见		**/
////		private String opinion;
////================================================
//    var  wfEntityId= $("#wfEntity\\.id").val();
//    //
//    var wfTypeLibId=$("#wfDefineInfo\\.wfTypeLib\\.id").val();
//    // 不是新建流程 同时流程库需要是批示库 即wfTypeLibId=5
//
//    if(isEmpty(wfEntityId) || wfTypeLibId != 5){
//        return;
//    }
//    var drm="";
//    if(status==="RUNNING"){
//    	drm="未办结";
//    }else if(status==="FINISH"){
//    	drm="已办结";
//    }
//    if(isReadOnly){
//		TANGER_OCX_SetReadOnly(false);
//		//TANGER_OCX_ReEditDoc();
//		TANGER_OCX_setBookMarkValue("办理结果",drm);
//		//TANGER_OCX_UnEditDoc();
//		TANGER_OCX_SetReadOnly(true);
//	}else{
//		//TANGER_OCX_ReEditDoc();
//		TANGER_OCX_setBookMarkValue("办理结果",drm);
//		//TANGER_OCX_UnEditDoc();
//	}
//    /*
//    $.getJSON("./wfStepUserAction!getDoResultForAjax.shtml?wfEntity.id=" + wfEntityId, function(data){
//        if(typeof(data.fail)!="undefined"){
//            alert("获取办理结果时失败：" + data.fail);
//            return;
//        }else{
//        	var str=data.result;
//        	//由于请求延迟造成本方法并非按照调用顺序执行，此处需要针对只读状态下的设置处理
//        	if(isReadOnly){
//				TANGER_OCX_SetReadOnly(false);
//				TANGER_OCX_setBookMarkValue("办理结果",str);
//				TANGER_OCX_SetReadOnly(true);
//			}else{
//				TANGER_OCX_setBookMarkValue("办理结果",str);
//			}
//        }
//    });
//    */
//
//}
////TODO 吴国算注释@20150709 老版批示流程停用，相关个性化配置去除【结束】
/*********-----------在表单处理页面的office控件中显示办理结果的信息 end-------------************/

/*********-----------在表单处理页面显示历史处理人、传阅人的信息 start-------------************/
function 	showHisIdeaList(){
//================================================
//		返回的json数据格式
//
//	/**	步骤名称	**/
//	private String stepName;
//	/**	人员类型：EXECUTER处理人,READER传阅人	**/
//	private String userType;
//	/**	人员姓名	**/
//	private String userName;
//	/**	处理时间		**/
//	private String executeTime;
//	/**	处理意见		**/
//	private String opinion;
//================================================
    var iddd = $("#wfEntity\\.id").val();
    var curStepNameTemp = $("#wfStep\\.stepName").val();
    var curUserDeptTemp = $("#cur_deptName").val();
    var stepId = $("#wfStep\\.stepId").val();

	//用户确认当前步骤是不是批示流程的办理部门，办理部门只显示个人的意见
    // TODO 吴国算注释@20150709 老版批示流程停用，相关个性化配置去除【开始】
    //var onlyDisplayPersonal= ($("#wfDefineInfo\\.wfTypeLib\\.id").val()==='5') && ($("#wfStep\\.stepName").val()==='办理部门' || $("#wfStep\\.stepName").val()==='单位交办');
    // TODO 吴国算注释@20150709 老版批示流程停用，相关个性化配置去除【结束】

    // 查看的意见范围。所有意见:ALL,本人意见:SELF,本人及创建人意见	SELF_CREATER
    var range = $("#curStep\\.showOpinionRange").val();
    if(isEmpty(range)){
    	range = "ALL";
    }

    if(isEmpty(iddd)){
        $("div#divHisIdeaContain").hide();
        $("input:checkbox#isShowHisIdeas").prop("disabled",true);
        return;
    }
    //修改getWfStepUsersForAjax 为getAllWfStepUsersForAjax 获取未处理的人员
	var param={
		'wfEntity.id':iddd,
		'stepIdNow':stepId,
		'showOpinionRange':range
		// TODO 吴国算注释@20150709 老版批示流程停用，相关个性化配置去除【开始】
//		,
//		'onlyDisplayPersonal':onlyDisplayPersonal
		// TODO 吴国算注释@20150709 老版批示流程停用，相关个性化配置去除【结束】

	};
    $.getJSON("./wfStepUserAction!getAllWfStepUsersForAjax.shtml",$.param(param), function(data){
        if(typeof(data.fail)!="undefined"){
            alert("获取表单数据时失败：" + data.fail);
            return;
        }else{
            var tbl = new Array();
            for(var i=0;i<data.length;i++){
                var dto = data[i];		// 步骤所有人员的意见
                tbl.push("<tr>");
                tbl.push("	<td>")
                tbl.push(		(i+1));
                tbl.push("	</td><td>");
                tbl.push(		dto.stepName);
                tbl.push("	</td><td>");
                tbl.push(		dto.userName);
                tbl.push("	</td><td>");
                if(dto.userType=="EXECUTERS"){
                    tbl.push("处理人");
                }else if(dto.userType=="READERS"){
                    tbl.push("传阅人");
                }
                tbl.push("	</td><td>");
                tbl.push(		dto.executeTime);
                tbl.push("	</td><td>");
                tbl.push(		dto.opinion);

               // if($("#wfDefineInfo\\.wfTypeLib\\.id").val()==5){
               // 	if(dto.docDataId==null || dto.docDataId=="" || (curStepNameTemp=="办理部门" && curUserDeptTemp!=dto.deptName)){
               //     	tbl.push("	</td><td></td>");
               //         tbl.push(" </tr>");
              //      }else{
              //      	tbl.push("	</td><td><div id=\"att_"+dto.docDataId+"\"");
              //          tbl.push("></div></td>");
              //          tbl.push("</tr>");
              //          tbl.push(" <script>");
             //           tbl.push(" $(function() {");
              //          tbl.push("    $(\"#att_"+dto.docDataId+"\").showAttachment(\"WF_STEP_USER\","+dto.docDataId+",{})");
              //          tbl.push(" });");
              //          tbl.push(" </script>");
              //      }
              //  }else{
                	tbl.push("	</td>");
              //  }


            }
            //alert(tbl.join(""));
            $("table.tbl tbody",$("div#divHisIdeaContain")).html(tbl.join(""));
        }
    });
}
/*********-----------在表单处理页面显示历史处理人、传阅人的信息 end-------------************/

/*********-----------在表单处理页面显示相关流程的信息 start-------------************/
function 	showConnectFlowList(){

    var iddd = $("#wfEntity\\.id").val();
    if(isEmpty(iddd)){
        $("div#divConnectFlowContain").hide();
        return;
    }

    $.getJSON("./wfStepUserAction!getConnectFlowForAjax.shtml?wfEntity.id=" + iddd, function(data){
        if(typeof(data.fail)!="undefined"){
            alert("获取表单数据时失败：" + data.fail);
            return;
        }else{
            var tbl = new Array();
            for(var i=0;i<data.length;i++){
                var dto = data[i];		// 步骤所有人员的意见

                tbl.push("<tr>");
                tbl.push("	<td>")
                tbl.push("	<a href='#' onclick='read_openWfEntity(");
                tbl.push(		dto.id);
                tbl.push(");return false;'><span name='name' align='center'>");
                tbl.push(		dto.stepName);
                tbl.push("	</span></a></td><td>");
                tbl.push(		dto.userType);
                tbl.push("	</td><td>");
                tbl.push(		dto.userName);
                tbl.push("	</td><td>");
                tbl.push(		dto.executeTime);
                tbl.push("	</td>");
                tbl.push("</tr>");
            }
            $("table.tbl tbody",$("div#divConnectFlowContain")).html(tbl.join(""));
        }
    });
}
/*********-----------在表单处理页面显示相关流程的信息 end-------------************/

function read_openWfEntity(ids) {
    //临时存放form的action值，为后面恢复用
    var formAction=$("form").eq(0).attr("action");
    if(isEmpty(ids)){
        alert("请选择一个流程实例！");
        return false;
    }

    var winName = getNewWinName();
    $("form").eq(0).attr("action",actName + '!detailReaderOnly.shtml?wfEntityIdReader='+ids).attr("target",winName);
    openNewWin("",null,null,winName);
    $("form").eq(0).submit();
    // 恢复默认打开的窗口
    $("form:eq(0)").attr("target","");
    //恢复原form的action值
    $("form").eq(0).attr("action",formAction);

}

/**----------------------------------------------------------------------------------------
 * 								用户签名域的处理
 *
 * 		签名域格式：			意见内容    姓名  XXXX年XX月XX日
 * 		签名域增加的属性：	currentUserInfo		用户当前录入的意见内容
 * 		意见输入域增加的属性：editObjName			编辑对象的名称（用于记录当前编辑的是哪个签名域的内容）
 *
 ----------------------------------------------------------------------------------------*/
/**
 * 清除意见内容。将当前用户输入的意见内容清空
 */
function clearSignInfo(){
    if(confirm("您确定要清除在本步骤输入的意见内容吗？")==false)	return;
    var name = $("textarea#userSignInfo").attr("editObjName");
    var $obj = $("textarea[name='" + name + "']",$("div#divForm"));
    if($obj.length==0)	return;

    var oldInfo = convertCurrentUserInfo($obj.attr("currentUserInfo"));
    if(isEmpty(oldInfo)){
    	oldInfo= getCurrentUserInfoContent($obj);
    }
    var val = $obj.val();
    // 先将前次录入的意见清除
    if(!isEmpty(oldInfo) &&  $obj.val().indexOf($.trim(oldInfo))>=0){
        var vv = $obj.val();
        if($obj.val().length > oldInfo.length){		// 前面的步骤就已经有意见，则需要同时将回车、换行符也清除
            $obj.val($.trim(vv.replace($.trim(oldInfo)+"\n","")));
            if( $obj.val().indexOf($.trim(oldInfo))>=0){
            	  $obj.val($.trim(vv.replace($.trim(oldInfo)+"","")));
            }
        }else{										// 前面的步骤没有意见，则不需要清除回车、换行符
        	$obj.val($.trim(vv.replace($.trim(oldInfo),"")));
        }
    }

    $obj.attr("currentUserInfo","");
    $("textarea#userSignInfo").val("");

    setDialogHide();
}
function rSignInfoOnChange(currentObj){
	var obj= $("textarea#userSignInfo");
	obj.val(obj.val() + " " + $(currentObj).val());
}
/**
 * 将意见信息返回到签名域中
 */
function setSignInfoToObj(){
    var info = $("textarea#userSignInfo").val();
    if(isEmpty(info.trim())){
        setDialogHide();
        return;
    }

    var name = $("textarea#userSignInfo").attr("editObjName");
    var $obj = $("textarea[name='" + name + "']",$("div#divForm"));
    //alert("info:" + info + "  len:" + $obj.length);
    if($obj.length==0){
        setDialogHide();
        return;
    }

    var oldInfo = convertCurrentUserInfo($obj.attr("currentUserInfo"));
    if(isEmpty(oldInfo)){
    	oldInfo= getCurrentUserInfoContent($obj);
    }
    var ss = getCurrentUserInfo(info);
    var ss1 = convertCurrentUserInfo(ss);
    // 先将前次录入的意见清除
    if(!isEmpty(oldInfo) &&  $obj.val().indexOf($.trim(oldInfo))>=0){
        var vv = $obj.val();
        if($obj.val().length > oldInfo.length){		// 前面的步骤就已经有意见，则需要同时将回车、换行符也清除
            $obj.val($.trim(vv.replace($.trim(oldInfo)+"\n","")));
            if( $obj.val().indexOf($.trim(oldInfo))>=0){
          	  $obj.val($.trim(vv.replace($.trim(oldInfo)+"","")));
            }
        }else{										// 前面的步骤没有意见，则不需要清除回车、换行符
        	$obj.val($.trim(vv.replace($.trim(oldInfo),"")));
        }
    }

    if(isEmpty($obj.val().trim())){					// 原先没有意见内容，直接添加
        $obj.val(ss1);
    }else{
        $obj.val($obj.val() + "\r\n" + ss1);	// 原先有意见内容，先添加回车、换行符，再加意见
    }
    $obj.attr("currentUserInfo",ss);

    // 隐藏对话框
    setDialogHide();
}
/**
 * 取得签名域中当前用户的签名内容
 *
 * @param {string} info		签名域对象
 * @return {String}
 */
function getCurrentUserInfoContent(obj){
	 var userName = $("input#cur_userName").val();
	if(obj.val().indexOf($.trim(userName))>=0)
	{
		var objs=obj.val().split("\n");
		if(objs.length>1)
			{
				for(var i=0;i<objs.length;i++){
					if(objs[i].indexOf($.trim(userName))>=0){
						return objs[i];
					}
				}
			}
		else{
			return obj.val();
		}
	}
}
/**
 * 取得保存在签名域的currentUserInfo属性中的格式化内容（意见##姓名##日期）
 *
 * @param {string} info		意见内容
 * @return {String}
 */
function getCurrentUserInfo(info){
    if(isEmpty(info))
        return "";
    var userName = $("input#cur_userName").val();
    var sDate = (new Date()).format("yyyy年MM月dd日");
    var ss = info + "##" + userName + "##" + sDate;
    return ss;
}
/**
 * 将保存在签名域currentUserInfo属性中的格式化内容（意见##姓名##日期），转换为签名信息（意见    姓名  日期）
 *
 * @param {string} currentUserInfo		签名域currentUserInfo属性中的格式化内容
 * @return {String}
 */
function convertCurrentUserInfo(currentUserInfo){
    if(isEmpty(currentUserInfo))
        return "";
    var ss = currentUserInfo.split("##");
    return ss[0] + "    " + ss[1] + "  " + ss[2];
}


/**
 *	定时锁定文档
 *		每隔110秒钟锁定文档
 **/
function conflict(){

    $.getJSON("./wfEntityAction!conflict.shtml?wfEntity.id="+$("#wfEntity\\.id").val()+"&r=" + Math.random() ,function(){
    });
    setTimeout(function(){
        conflict();
    },(110 * 1000));
}

function getSrcFileUri(){
    return fileName;
}

function setGwFile(filenames){
    var fileMameGD = sursenTempDir+"\\"+getTuoMiGDFileName()+".gd";
    tuoMiShuSheng(filenames,fileMameGD);
    //alert("绑示文件和脱密文件已生成，请手动将其上传！路径：" + filenames);
}
/**上传扫描的图片**/
function opt_uploadImage(){
	//获取扫描的所有图片
	var data=divScanContain.window.getPDF();
	var imageArray=[];
	//针对 返回多个数据或是单个数据的统一处理方式
	if(data!=undefined && $.isArray(data)){
		imageArray=data;
	}else{
		imageArray.push(data);
	}
	uploadScannedImage(imageArray,".pdf");
}
/**扫描操作**/
function opt_scan(){
	//盖章页面已经打开，则无法再次打开
    if( $("iframe#divScanContain").attr("src")==undefined){
    	 var pathPara = $("#pathParam").val()+"/workflow/jet/WebScanner.htm";
    	 var iframe_scanner=$("<iframe id='divScanContain' src="+pathPara+" width='100%' height='800px' ></iframe>");
    	 //将word编辑隐藏后，插入盖章页面
    	 $("#divOfficeContain").hide().after(iframe_scanner);
    }else{
    	//如果已经打开扫描界面，点击扫描，则再次扫描
    	//调用子页面中的方法
    	divScanContain.window.scan();
    	//setTimeout("divScanContain.window.isUpload()",5000);
    }
}
/***上传扫描的图片*/
//TODO:目前存在问题，扫描图片超过3张，无法上传成功；可能是由于tomcat针对post请求数据的大小的限制
function uploadScannedImage(jpeg,imageExt){
	var uploadUrl="http://"+window.location.host + _contextPath + "/attachmentAction!uploadScannedImage.shtml?";
	var uploadObj=getUploadBasicInfo();
	uploadObj.imageData=jpeg.join("%%");
	uploadObj.imageExt=imageExt;
	uploadObj.formTitle=$("#divForm table caption").text().trim();
	var wenhao=$("#divForm #f_wenhao").val();
	if(wenhao!=undefined && wenhao !='' && wenhao !='文号') uploadObj.wenhao=wenhao;
	$.ajax({
		url : uploadUrl,
		type : 'POST',
		dataType : 'json',
		data : $.param(uploadObj),
		timeout : 10000,
		success : function(data){
			//上传成功后，移除扫描页面并显示原先的文档页面
			if(typeof(data)=="boolean" &&data==true){
				$("#divScanContain").remove();
				$("#divOfficeContain").show();
				showLatestAttachment(uploadObj.formId,uploadObj.docId);
			}
		}
	});
}
/**获得组装基本上传信息的对象**/
function getUploadBasicInfo(){
	var formId=$("#divAttachments").attr("formId");
	var docId=$("#divAttachments").attr("docId");
	var uploadPerson=$("#divAttachments").attr("uploadPerson");
	var basic={
		formId:formId,
		docId:docId,
		uploadPerson:uploadPerson
	};
	return basic;
}

/**上传书生文件操作**/
function opt_upload(){
	uploadSursenFile();
}
/**上传书生盖章生成的gd和gw后缀文件**/
function uploadSursenFile(){

	 var uploadObj=getUploadBasicInfo();
     //var wfEntityId=$("#wfEntity\\.id").val();//流程id
 	 var formDataId=$("#wfEntity\\.formDataId").val();//流程对应表单数据id
 	 var docNum=$("#f_wenhao").val();//机关代字文号

 	 if(docNum==undefined){
		docNum = "";
	 }

 	 var title=$("#divForm input[txtreservedomain='title']").val();
 	 uploadObj.formDataId=formDataId;
 	 uploadObj.docNum=docNum;
 	 uploadObj.docTitle=title;

	 var uploadUrl="http://"+window.location.host + _contextPath + "/attachmentAction!uploadBySursen.shtml?";
	 var uploadFiles=[sursenTempDir+"\\"+getTuoMiGDFileName()+".gd",sursenTempDir+"\\"+getTuoMiGDFileName()+".gw"];

	 var uploadSuccess=[];
	 $.each(uploadFiles,function(){
		 if(fileExists(this)) {
			 //组装上传url
			 var _url=uploadUrl+$.param(uploadObj);
			 //+encodeURI("&sursenFileName="+this);
			 //上传文件
			 var isUploadSuccess=uploadserver(this,_url);
			 if(isUploadSuccess){
				 uploadSuccess.push(isUploadSuccess);
			 }
		 }
	 });
	 if(uploadSuccess.length==2) {
		 showLatestAttachment(uploadObj.formId,uploadObj.docId);
		 delTempDir();
	 }
}
/** 显示最新附件 **/
function showLatestAttachment(formId,docId){
	//先删除原先存在的附件，再加载所有附件
	//由于 appPlugins中使用live方法对$("img.deleteBtnClz",$(this)) 进行了绑定click事件
	//需要通过die进行解绑，否则删除后，动态添加会出现多次事件
	//注意使用die的元素需要同绑定live的元素相同；
	//如使用$("#_attachments span img.deleteBtnClz").die();无效
	$("#_attachments img.deleteBtnClz").die();
	$("#_attachments span").remove();
	$("#_attachments").showAttachment(formId,docId,{isCanDelete:true});
}

/** 删除生成的临时文件**/
function delTempDir(){
	var tempDir=sursenTempDir;
	delDir(tempDir);
}
/**
 * 删除文件夹，包括多级的文件夹
 * @param basedir	需要删除的文件夹路径 如："C:\\WINDOWS\\temp\\sursen" 注意sursen后不需要跟\\
 */
function delDir(basedir){
	var fso = new ActiveXObject("Scripting.FileSystemObject");
	var isExists=fso.FolderExists(basedir);	//文件夹是否存在
	if(isExists){
		 //执行删除，如果是系统只读文件，无法删除，设置为只读属性为true
		 fso.DeleteFolder(basedir, true);
	}else{
		alert("无法删除，该"+basedir+"文件夹不存在！");
	}
}
/**
 * 检查文件是否存在
 * @param file 需要检查的文件
 * @returns 存在返回true，不存在返回false
 */
function fileExists(file){
	var fso = new ActiveXObject("Scripting.FileSystemObject");
	var isExists=fso.FileExists(file);	//文件是否存在
	return isExists;
}

function opsursen(){
	//if(endStepValidDocNumExists()){
		//alert("机关代字文号已被使用，请修改后，再操作盖章！");
	//	return;
	//}else{
		//确定盖章，并校验通过，则不能在修改机关代字；如要修改，直接刷新页面重新打开
	//	$("#_btn_docnum_modify").attr("disabled","true");
	//}
	//创建流程的同时进行盖章操作，由于wfEntity.id为空，打开文档的时候会取模板
	if(isEmpty($("#wfEntity\\.id").val()) && $("#wfEntity\\.status").val()==='CREATED'){
		isDirectSeal=true;
	}
	//盖章页面已经打开，则无法再次打开
    if( $("iframe#divSursenContain").attr("src")==undefined){


	   	 fileName= sursenTempDir+"\\"+tempFileName+".doc";
	   	 //TANGER_OCX_OBJ.ActiveDocument.AcceptAllRevisions();//接受所有的修订
    	 saveDocFile();
    	 TANGER_OCX_OBJ.ActiveDocument.AcceptAllRevisions();//接受所有的修订
    	 TANGER_OCX_SaveDocToLocal(fileName,true);
    	 TANGER_OCX_CloseWord();
    	 var pathPara = $("#pathParam").val()+"/workflow/jet/ConSealBySursen.htm";
    	 var iframe_conSeal=$("<iframe id='divSursenContain' src="+pathPara+" width='100%' height='800px' ></iframe>");
    	 //将word编辑隐藏后，插入盖章页面
    	 $("#divOfficeContain").hide().after(iframe_conSeal);
    }else{
    	alert("已经打开盖章页面");
    }
    //var pathPara = $("#pathParam").val();
    //window.open(pathPara+"/workflow/jet/ConSealBySursen.htm");
}

function getBangShiGWFileName(){

    var bangshiName = tempFileName;
    return bangshiName;
}

function getTuoMiGDFileName(){
    var tuomiName = tempFileName;
    return tuomiName;
}

/** 盖章操作*/
function opt_eSeal(){
	
	if(isEmpty($("#wfEntity\\.id").val())){
		alert("盖章操作前,请先进行保存操作！");
		return;
	}
	var wordSealType=$("#operatePermDTO\\.wordSealType").val();
	//alert(wordSealType);
	if("TG"==wordSealType){
		if(!againTgSeal()){
			opentgpdfPlugin();
		}
	}else if("SUSEN"==wordSealType){
		if(!againSeal()){
			opsursen();
		}
	}else{
		if(!againSeal()){
			opsursen();
		}
	}
	
}
/** 二次盖章操作
 *  前提条件，在流程定义中需要先定义是否二次盖章
 * */
function againSeal(){
	var flag=false;
    var isAgain=$("#operatePermDTO\\.canAgainWordSeal").val();
    var fileUrl=$("#isFileUrl").val();
    if(!isEmpty(isAgain) && isAgain=="true" &&!isEmpty(fileUrl)){
	    //盖章页面已经打开，则无法再次打开
	    if( $("iframe#divSursenContain").attr("src")==undefined){
	    	fileName=fileUrl;
	    	var pathPara = $("#pathParam").val()+"/workflow/jet/ConSealBySursen.htm";
	        var iframe_conSeal=$("<iframe id='divSursenContain' src="+pathPara+" width='100%' height='800px' ></iframe>");
	        //将word编辑隐藏后，插入盖章页面
	        $("#divOfficeContain").hide().after(iframe_conSeal);
	        //赋值文件路径，以供盖章页面调用
	    }else{
	        alert("已经打开盖章页面");
	    }
	    flag=true;
    }
    return flag;
}

/** 
 *  天谷二次盖章操作
 *  前提条件，在流程定义中需要先定义是否二次盖章
 * 
 */
function againTgSeal(){
	var flag=false;
    var isAgain=$("#operatePermDTO\\.canAgainWordSeal").val();
    var sealPdfId=$("#canSealPdfId").val();
    if(!isEmpty(isAgain) && isAgain=="true" &&!isEmpty(sealPdfId)){
    	var pathPara = $("#pathParam").val()+"/workflow/jet/TGPDFPlugInCtrlSeal.htm";
    	//$("#divTgContain").attr('src', pathPara);
    	var iframe_conSeal=$("<iframe id='divTgContain' src="+pathPara+" width='100%' height='800px' ></iframe>");
        //将word编辑隐藏后，插入盖章页面
        $("#divTgViewContain").hide().after(iframe_conSeal);
	    
	    flag=true;
    }
    return flag;
}

function tuoMiShuSheng(srcfile,gdfile){
    var gwpwd = "";
    var flag =sedArchiveByred(srcfile, gwpwd, gdfile);
    if(flag) {
    	alert("脱密成功!");
    	//盖章完成后，移除盖章页面并显示word编辑页面
        $("#divSursenContain").remove();
        $("#divOfficeContain").show();
        openShushengFile();
    }else{
    	getMsg();
    }
    //注意上传书生文件操作需要放到最后面
	setTimeout("uploadSursenFile()",3000);
}

function openShushengFile(){
    // 根据用户选择的正文类型，分别进行处理
    try{

        _openedDocFileUrl = "";
        switch($("#wfEntity\\.editorType").val().toUpperCase()){
            case	"OFFICE":
                // 如果流程实例未结束（还在流转中），office文档的类型应该是ZW_DRAFT（草稿文件）。
                //		流转结束后，如果有ZW_PDF文档，则显示ZW_PDF文档（由正式文件转换而来的PDF文件）
                //					没有ZW_PDF文档，则显示正式文件（类型为ZW）
                if($("#wfEntity\\.status").val()!="FINISH"){
                    openDocFile("ZW_DRAFT");
                }else{
                    if($("#isHaveZwPdfFile").val()=="true"){
                        openZwPdfFile();
                    }else{
                        openDocFile("ZW");
                    }
                }


                // 窗口改变大小时，也改变word控件的大小
                $(window).bind("resize", function() {
                    $("#TANGER_OCX").width($(document).width() * 0.97);
                });
                $(window).trigger("resize");


                if($("span#docFileHistoryList").length>0){
                    // 显示历史文档信息
                    $("span#docFileHistoryList").showDocFileSelect(
                        "WF_ENTITY",
                        $("#wfEntity\\.docDataId").val(),
                        openDocFileById,
                        {
                            title			: "点击恢复历史文档",
                            needConfirm	: true,
                            confirmContent	: "恢复选定的历史文档将丢失正在编辑的文档内容，你确认要操作吗？"}
                    );
                }

                if($("span#docTemplatesSelectList").length>0){
                    var ids = $("#formDefine\\.docTempIdBak").val();
                    if(!isEmpty(ids)){
                        $("span#docTemplatesSelectList").showDocTemplateSelect(
                            ids,
                            openDocTemplateById,
                            {
                                title			: "点击重新选择文档模板",
                                needConfirm		: true,
                                confirmContent	: "重新选择文档模板将丢失你已录入的文档内容，你确认要操作吗？"}
                        );

                    }
                }
                break;

            case	"PDF":
                openPdfFile();
                break;

            default:
        }
    }catch(e){}

}
function opt_look(){

    if(isEmpty($("#isFileUrl").val())){
        alert("附件中不存在绑示文件，请先盖章生成，然后上传到附件中！");
        return false;
    }else{
        bangSFileUrl = $("#isFileUrl").val();

        var pathPara = $("#pathParam").val();
        //sealLookAndPrintWin 为全局变量，需要在控制打印次数的方法中使用到
        sealLookAndPrintWin=window.open(pathPara+"/workflow/jet/ReadBySursen.htm");
    }
}

function setGwFileForRead(filenames){
    alert("回调说明：" + filenames);
}

function getSrcFileUriForRead(){
    return bangSFileUrl;
}

/**======================================天谷电子印章相关函数（开始）=================================================*/
var fileDownloadUrl="";
/**
 * 新版天谷盖章操作
 */
function opt_newSeal(){
	opentgpdfPlugin();
}

/**
 * 打开天谷盖章页面，进行盖章操作
 */
function opentgpdfPlugin(){

	//创建流程的同时进行盖章操作，由于wfEntity.id为空，打开文档的时候会取模板
	if(isEmpty($("#wfEntity\\.id").val()) && $("#wfEntity\\.status").val()==='CREATED'){
		isDirectSeal=true;
	}
	// 先判断正文是word还是pdf
	var editorTypeTemp = $("#wfEntity\\.editorType").val().toUpperCase()
	if(editorTypeTemp=="PDF"){
		
	}else{
		// 先保存当前打开的正文
		saveDocFile();
	}
	
	// 等待（后台需要一定的时间进行PDF的转换工作）
	openWaitDialog("正在初始化盖章页面，请您稍候.....");
	fileName= tgTempDir+"\\"+tempFileName+".doc";
	fileNamePdf = tgTempDir+"\\"+tempFileName+".pdf";
	if(editorTypeTemp=="PDF"){
		
	}else{
		TANGER_OCX_OBJ.ActiveDocument.AcceptAllRevisions();//接受所有的修订
   		TANGER_OCX_SaveDocToLocal(fileName,true);
	}
   
	// 延迟5秒打开盖章页面
    setTimeout(function(){

    	// 关闭等待页面
    	closeWaitDialog();
    	if(editorTypeTemp=="PDF"){
    	
    	}else{
        	TANGER_OCX_CloseWord();
        }
    	var pathPara = $("#pathParam").val()+"/workflow/jet/TGPDFPlugInCtrlSeal.htm";
    	var iframe_conSeal=$("<iframe id='divTgContain' src="+pathPara+" width='100%' height='800px' ></iframe>");
       
        if(editorTypeTemp=="PDF"){
        	//将pdf编辑隐藏后，插入盖章页面
        	$("#divPdfContain").hide().after(iframe_conSeal);
        }else{
        	//将word编辑隐藏后，插入盖章页面
        	$("#divOfficeContain").hide().after(iframe_conSeal);
        }
        

    },5000);

}


/**
 * 获取天谷盖章用PDF文件路径
 */
function getPdfFile(){
	return fileNamePdf;
}

/**======================================天谷电子印章相关函数（结束）=================================================*/


/**
 * 当前流程是否为最后一步流程
 * @returns {Boolean}
 */
function isEndStep(){
    return $("#isEndStep").val()==1	&& $("#isWfStepEndExecuter").val()==1;
}
/**
 * 用于最后一步发布时，校验文号是否已经存在
 * @returns 文号是否存在，存在返回true，不存在返回false；
 */
function endStepValidDocNumExists(){
	var docNum=docNumObj();
	var isExists=false;
	if(docNum.isCheck){
        return isExists;
    }
	//处理针对没有机关代字文号的情况，不校验
	if(!docNum.haveInvalidField){
		isExists= validDocNumExists(docNum.$parentObj,docNum._formDocNumType,docNum._name,docNum._year,docNum._order);
	    //if(!isExists) increaseNextId(_formDocNumType,_name,_year,_order);
	}
    return isExists;
}
/**
 * 根据表单当前内容值，生成一个包含机关代字文号信息的docNum对象
 * @returns docNum 包含文号信息的对象
 */
function docNumObj(){
	var $parentObj=$("div#divForm");									//表单对象
    var	_$docNum = $("[txtinputtype=docnum]", $parentObj); 				//表单定义中的字号元素
    var	_formDocNumType = _$docNum.attr("txttypename"); 				//表单中定义的字号分类
    var _name = $("select#f_docNum_name",$parentObj);
    $("select#f_docNum_name",$parentObj).attr("oldValue",_name.val());
    var _year = $("select#f_docNum_year",$parentObj);
    $("select#f_docNum_year",$parentObj).attr("oldValue",_year.val());
    var _order = $("input:text#f_docNum_order",$parentObj);
    $("input:text#f_docNum_order",$parentObj).attr("oldValue",_order.val());
    var invalid1=_name.prop("disabled")==undefined;
    var invalid2=_year.prop("disabled")==undefined;
    var invalid3=_order.prop("disabled")==undefined;
    var check1=_name.prop("disabled")?true:false;
    var check2=_year.prop("disabled")?true:false;
    //var check3=_$docNum.prop("readOnly")?true:false;
    //组装docNum对象
    var docNum=new Object();
    //只要其中有一个为true，则就表示不需要校验
    docNum.isCheck=invalid1||invalid2||invalid3||check1||check2;//||check3;
    docNum.$parentObj=$parentObj;
    docNum._formDocNumType=_formDocNumType;
    docNum._name=_name.val();
    docNum._year=_year.val();
    docNum._order=_order.val();
    //检查docNum对象是否包含无效字段
    docNum.haveInvalidField=checkInvalidField(docNum);
    return docNum;
}
/**
 * 机关代字切换
 * 联合发文选择选择是，则切换市政府机关代字为市委办机关代字
 */
function toggleDocNum(toggle){
	var $parentObj=$("div#divForm");
	var $name = $("select#f_docNum_name",$parentObj);
	var $year = $("select#f_docNum_year",$parentObj);
	var	$docNum = $("[txtinputtype=docnum]", $parentObj);
	var	type = $docNum.attr("txttypename");
	//移除所有的option
	$name.find("option").remove();
	$year.find("option").remove();
	if(!isEmpty(toggle)&&toggle==true){
		var url="./formDocNumAction!listDocNumByParams.shtml"
		var paramObj={orgId:5,type:type};
		$.getJSON(url,$.param(paramObj),function(data){
			if(typeof(data.fail)!="undefined"){
	            alert("获取表单数据时失败：" + data.fail);
	            return;
	        }else{
	        	var optionNames=[];
	        	optionNames.push("<option value=''></option>");
	    		//遍历组装option
	        	$.each(data,function(){
	        		optionNames.push("<option value='"+this+"'>"+this+"</option>");
	        	});
	        	//添加option到select中
	        	$name.append(optionNames.join(""));
	        }
		});
	}else{
		var url="./formDocNumAction!listNamesByTypeOrgId.shtml"
			var paramObj={type:type};
			$.getJSON(url,$.param(paramObj),function(data){
				if(typeof(data.fail)!="undefined"){
		            alert("获取表单数据时失败：" + data.fail);
		            return;
		        }else{
		        	var optionNames=[];
		        	optionNames.push("<option value=''></option>");
		    		//遍历组装option
		        	$.each(data,function(){
		        		optionNames.push("<option value='"+this+"'>"+this+"</option>");
		        	});
		        	//添加option到select中
		        	$name.append(optionNames.join(""));
		        }
		});
	}
}
/**
 * 校验一个对象中是否有无效的字段属性；字段为undefined或是空就视为无效；
 * return true表示包含无效字段；false表示不包含无效字段
 */
function checkInvalidField(obj){
	var invalid=[];
	for(var field in obj){
		var val=obj[field];
		if(isEmpty(val)){
			invalid.push(val);
		}
	}
	if(invalid.length>0){
		return true;
	}
	return false;
}

/**
 * 用于最后一步发布时，提交或是发布完成时，将指定字、年度的字号的nextId +1
 */
function endStepIncreaseNextId(){
	var docNum=docNumObj();
	//处理针对没有机关代字文号的情况，不校验
	if(docNum.isCheck){
        return;
    }
	if(!docNum.haveInvalidField){
		increaseNextId(docNumObj()._formDocNumType,docNumObj()._name,docNumObj()._year,docNumObj()._order);
	}
}
/**
 * 切换历史文档记录显示
 * 在inclube/wordControl.ftl中使用
 */
function toggleHistory(){
    $("#docFileHistoryList").toggle();
}
/**
 * 点击表单标题切换显示或隐藏表单体
 */
function clickTitleToggleBody(){
	//忽略不隐藏流程的id定义
	var ignore=["257"];
    var entityId = $("#wfEntity\\.id").val();
    var isDisplay=true;

    /*
     *由于IE6和IE7 隐藏tbody时无法隐藏边框，为此先保存边框属性
     *隐藏的时候移除border属性，显示时添加border属性
     */
    var _border=$("#divForm table").attr("border");

    if(entityId=="" || $.inArray($("#wfEntity\\.wfDefineInfo\\.id").val(),ignore)!=-1){
        document.getElementById("divForm").style.display = "";//显示
    }else{
        $("#divForm").css("min-height",0);
        $("#divForm table").removeAttr("height");		//使用attr设置hight为0,在ie6、7下无效
        $("#divForm table").removeAttr("border");
        $("#divForm table tbody").hide();
        isDisplay=false;
    }

    $("#divForm table caption").click(function(){
        if(isDisplay){
            $("#divForm").css("min-height",0);
            $("#divForm table").removeAttr("height");		//使用attr设置hight为0,在ie6、7下无效
            $("#divForm table").removeAttr("border");
            $("#divForm table tbody").hide();
            isDisplay=false;
        }else{
            $("#divForm table").attr("border",_border);
            $("#divForm table tbody").show();
            isDisplay=true;
        }
    });
}
/**
 * 处理input显示长度问题，针对IE6或IE9显示input为一半大小的问题
 * 由于input同时使用size和style中的width，部分浏览器解析不一致所造成
 */
function inputLengthHandler(){
    var b=browser();
    if(b=='IE6.0' || b=='IE9.0' || b=='IE7.0'){
        $("#divForm table tbody tr td input[type=text]").each(function(){
            var _style=$(this).attr("style");
            var _size=$(this).attr("size")
            if(_style !=undefined && _style.indexOf("width")!=-1 ){
                var _length=101;
                if(_size !=undefined && parseInt(_size)>=80 && parseInt(_size)< _length){
                    _style=_style.replace(/width:.\d{1,4}.;/g,'');
                    $(this).attr("style",_style).attr("size",_length);
                }
            }
        });

        /* 通过td的colspan来判断是否跨列，再进行操作相对可能更准确一些
         $("#divForm table tbody tr td").each(function(){
         var colspan= $(this).attr("colspan");
         if(colspan !=undefined && colspan >2){
         console.log(colspan);
         var _size= $(this).children("input[type=text]").attr("size");
         var _style=$(this).children("input[type=text]").attr("style");

         if(_style !=undefined && _style.indexOf("width")!=-1 ){
         var _length=101;
         if(_size !=undefined && parseInt(_size)>=80 && parseInt(_size)< _length){
         _style=_style.replace(/width:.\d{1,4}.;/g,'');
         $(this).children("input[type=text]").attr("style",_style);
         $(this).children("input[type=text]").attr("size",_length);
         }
         }
         }
         });
         */
    }
}
/**
 * 检测浏览器版本
 * @returns {String}  返回当前浏览器版本（如IE6.0 IE9.0）
 */
function browser()
{
    var Sys = {};
    var ua = navigator.userAgent.toLowerCase();

    var s;
    (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
        (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
            (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
                (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
                    (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;

    if (Sys.ie) return 'IE' + Sys.ie;
    if (Sys.firefox) return 'Firefox' + Sys.firefox;
    if (Sys.chrome) return 'Chrome' + Sys.chrome;
    if (Sys.opera) return 'Opera' + Sys.opera;
    if (Sys.safari) return 'Safari' + Sys.safari;
}
/*********************以下功能主要针对批示流程的处理*************************/
/**根据填写的联系人信息后台获取联系方式后，映射到联系电话一栏*/
function getCurContact(){
	var wfEntityId= $("#wfEntity\\.id").val();
    var wfTypeLibId=$("#wfDefineInfo\\.wfTypeLib\\.id").val();
    // 不是新建流程 同时流程库需要是批示库 即wfTypeLibId=5
    if(isEmpty(wfEntityId) && (wfTypeLibId === '5'||wfTypeLibId==='10')){
    	var _url="./sysUserAction!ajaxUserContact.shtml";
    	$.getJSON(_url,function(data){
    		if(typeof(data.fail)!="undefined"){
                //alert("获取表单数据时失败：" + data.fail);
                return;
            }else{
				if(data.info.indexOf("徐光辉")>=0){
				}else{
					$("#divForm #f_lianxiren").val(data.info);
            		$("#divForm #f_lianxidianhua").val(data.officeTel);
				}
            }
    	});
    }
}
/**
 * 根据是否反馈，校验是否一定需要填写处理意见
 * @returns {Boolean}
 */
function checkFeedback(opinion_id){
	var handleDept="办理部门";
	var check=false;
	var wfEntityId=$("#wfEntity\\.id").val();
    var wfTypeLibId=$("#wfDefineInfo\\.wfTypeLib\\.id").val();

    var wfStepName=$("#wfStep\\.stepName").val();	//流程中的中的具体步骤名
    var eq= wfStepName==handleDept;

	if(!isEmpty(wfEntityId) && wfTypeLibId==5){
		var feedback=$("#f_fankui").val();
		if(feedback!=undefined && feedback=="true" && eq){
			var opinion=$("#"+opinion_id).val();
			if(isEmpty(opinion)){
				alert("本批示需要反馈，请填写处理意见！");
				check=true;
			}
		}
	}
	return check;
}
/**
 * 绑定批示人，点击后自动弹出参照
 * json的数据格式为只存放sysUser.id的数组
 */
function bindPishiRen(){
	var readOnly=$("#f_pishiren").prop("readOnly");
	if(readOnly==false){
		//通过json请求 岗位为 批示人的用户的id
		var _url="./userGroupAction!ajaxPishiren.shtml"
		var params={"wfDefineInfoId":$("#wfEntity\\.wfDefineInfo\\.id").val()};
		$.getJSON(_url,$.param(params),function(data){
			if(typeof(data.fail)!="undefined"){
                alert("获取批示人岗位的用户id数据时失败：" + data.fail);
                return;
            }else{
            	$("#f_pishiren").bind("click",function(){
        			var _readOnly=$(this).prop("readOnly");
        			if(_readOnly==false){
        				var userIds=data.join(",");
        		        var obj={
        		            userIdsVal:userIds,
        		            userTypeVal:"USER",
        		            f_pishiren:"value2",
        		            f_pishiren_id:"value1"
        		        };

        		        openUserRefM($.param(obj));
        			}
        	    });
            }
		});
	}
}

/**
 * 绑定市长领导，点击后自动弹出参照
 * json的数据格式为只存放sysUser.id的数组
 */
function bindGuiShuLingDao(){
	var readOnly=$("#f_guishulingdao").prop("readOnly");
	if(readOnly==false){
		//通过json请求 岗位为 批示人的用户的id
		var _url="./sysDeptAction!ajaxXinjianRen.shtml"
		var params={"wfDefineInfoId":$("#wfEntity\\.wfDefineInfo\\.id").val()};
		$.getJSON(_url,$.param(params),function(data){
			if(typeof(data.fail)!="undefined"){
                alert("获取信件归属领导的用户id数据时失败：" + data.fail);
                return;
            }else{
            	$("#f_guishulingdao").bind("click",function(){
        			var _readOnly=$(this).prop("readOnly");
        			if(_readOnly==false){
        				var userIds=data.join(",");
        		        var obj={
        		            userIdsVal:userIds,
        		            userTypeVal:"USER",
        		            f_guishulingdao:"value2",
        		            f_guishulingdao_id:"value1"
        		        };

        		        openUserRefM($.param(obj));
        			}
        	    });
            }
		});
	}
}

/**
 * 是否保密域选择“是”时，提示：保密文件不能在本系统中流转！
 * @param para select对象
 * @returns {Boolean}
 */
function checkIsYes(para){
	var result = para.value;
	if(result=="是"){
		alert("保密文件不能在本系统中流转！");
		para.value = "否";
		return false;
	}
}

/**
 * 保密期限改变时，提示：保密文件不能在本系统中流转！
 * @param para text对象
 * @returns {Boolean}
 */
function checkIsWriteIn(para){
	var result = para.value;
	if(!isEmpty(result)){
		alert("保密文件不能在本系统中流转！");
		para.value = "";
		return false;
	}
}

/**
 * 是否联合发文，选择“是”的场合，用市委的红头;"否"，则切换回市政府的红头模板文件
 * @param para
 */
function checkIsChange(para){
	//alert(para.value);
	if(para.value==1){
		if(confirm("是否确认联合发文?(注：选择是，转为联合发文后正文内容无法保存!)")){
			var ids = $("#formDefine\\.docTempIdBak").val().split(",")[0];
			if(!isEmpty(ids)){
				// 打开默认的表单打印模板
				openDocTemplateById(ids);
			}
			toggleDocNum(true);
		}else{
			para.value=0;
		}
	}else if(para.value==0){
		var ids = $("#formDefine\\.docTempId").val();
		if(!isEmpty(ids)){
			// 打开默认的表单打印模板
			openDocTemplateById(ids);
		}
		toggleDocNum(false);
	}
}
/**
 * 是否公开发布的事件处理
 * 如果选择是，即公开发布，在word对应书签位置需要设置"此件公开发布"
 * 如果选择否，则不显示任何信息
 * 注：在表单定义中，调用方法作为触发事件，
 * 表单中该元素需要设置对应的书签，以及word中设置相同书签
 * @param element  "是否公开发布"的select
 */
function isPublicEvent(element){
	var _val=$(element).val();
	if(_val=="是"){
		var ly=$("#f_bugongkailiyou").val();
        if(!isEmpty(ly)){
        	$("#f_bugongkailiyou").val("").attr("refDataIds","");
        }
		TANGER_OCX_OBJ.SetBookmarkValue("公开标志","(此件公开发布)");
	}else{
		TANGER_OCX_OBJ.SetBookmarkValue("公开标志","");
	}
}
/**
 * 关于流程公开意见的保存
 * @param 流程ID wfId
 * @param 流程步骤ID wfStepId
 * @param 处理人ID dealerId
 * @param 处理意见 options
 * @param 处理类型 dealType
 */
function savePublicOption(wfId,wfStepId,dealerId,options,dealType){

	var publicOptionPara = wfId+","+wfStepId+","+dealerId+","+options+","+dealType;

    // 	关于流程公开意见的保存
	$.ajax({
        type: 		"POST",
        dataType:	"json",
        async:		false,
        url: 		"wfEntityAction!savePublicOption.shtml",
        data: {
            "publicOptionPara"	:	publicOptionPara
        },
        success: function(data){
            if(typeof(data.fail)!="undefined"){
                alert("保存流程公开意见时出错:" + data.fail);
            }else if(data.result=="YES"){
            }
        },
        error:function (XMLHttpRequest, textStatus, errorThrown) {
            alert("保存流程公开意见时出错！");
        }
    });
}
//文档的激活事件
function ntko_OnDocActivated(status){
	//isSynStatus为false时表示，模板切换，需要关闭同步
	//当新文档打开后，失去激活状态时，开启同步
	if(isSynStatus==false && status==false){
		isSynStatus=true;
	}
	isActivated=status;
}

//触发手写批注
function opt_inkCommont(){
	TANGER_OCX_ShowRevisions(true);
	var word=TANGER_OCX_OBJ.ActiveDocument;
	TANGER_OCX_OBJ.Activate(true);
	word.Application.CommandBars("Reviewing").Visible = true;
	//使用item(9),则开启原生的批注
	word.Application.CommandBars("Reviewing").Controls.Item(8).Enabled =true;
	word.Application.CommandBars("Reviewing").Controls.Item(8).Execute();
}
//触发手写注释
function opt_inkAnnotations(){
	var word=TANGER_OCX_OBJ.ActiveDocument;
    TANGER_OCX_OBJ.Activate(true);
	if(word.shapes.count<=0){
		addShapeEveryPage();	//每一页插入一个绘画框
	}
	TANGER_OCX_ShowRevisions(true);
    //word.Application.Selection.GoTo(1,1,1);//跳转到第一页,解决添加绘画框后跳转到最后一页
    word.shapes(1).Select();	//选中第一个绘画框
    word.Application.CommandBars("Ink Annotations").Visible = true;
    word.Application.CommandBars("Ink Annotations").Controls.Item(1).Controls(8).Execute();
}
//清除手写注释
function clear_inkAnnotations(){
	//痕迹保留修订模式，需要先关闭，才能删除正常删除
	//否则会提示没有权限
	try{
		var flag=TANGER_OCX_OBJ.ActiveDocument.TrackRevisions;
		if(flag==true){
			TANGER_OCX_SetReviewMode(false);
		}
		deleteAllShapes();
		TANGER_OCX_SetReviewMode(flag);
	}catch(err){
		if(isNtkoDebug==true){
			alert("clear_inkAnnotations()错误：" + err.number + ":" + err.description);
		}
	}
}

//收文转批示
function opt_convertToPishi(){
    dialog("收文转批示", "id:convertPishi", "500px", "auto", "text");
}
/**
 * 收文转批示确定打开新的窗口
 */
function convertToPishiOk(){
    var shouwenId=$("#convertPishiId").val();
    if(isEmpty(shouwenId)){
        alert("可转的批示流程id不能为空！");
        return false;
    }
    var p={
        'shouwenId':$("#wfEntity\\.id").val(),
        'wfDefineInfo.id':shouwenId,
        'wfTypeLibId':5,
        'curWfUserType':'CREATER'
    };
    setDialogHide();
    opt_close();    //关闭打开的窗口
    var _url="./wfEntityAction!shouwenConvertPishi.shtml?"+$.param(p);
    var winName = getNewWinName();
    openNewWin(_url,null,null,winName);
}
/**
 * 校验发布对象是否已选择
 * @returns {Boolean} 发布对象存在返回true，不存在返回false；
 */
function isExistsPublishUser(){

	 var isExists=true;
	 if($("#wfEntity\\.publishUsersName").length>0 && $("#wfEntity\\.publishUsersId").length>0 && $("#wfEntity\\.FC4").length>0 && $("#wfEntity\\.FC5").length>0){
	    if(isEmpty($("#wfEntity\\.publishUsersId").val()) && isEmpty($("#wfEntity\\.FC4").val())){
	    	alert("发布对象未选择，请选择后，再进行提交！");
	    	isExists=false;
	    }
	 }
	 return isExists;
}

/**
 * 系统确认弹框
 */
window.confirm = function(str){
   	execScript("n = (msgbox('"+str+"',vbYesNo, '提示')=vbYes)", "vbscript");
    return(n);
}

/**
 * 给word每页都添加一个满页的图形;
 * 图形浮动于文字上方，不能编辑下方的文字，可以进行手写注释
 * 满页按照页面设置的大小进行添加
 */
function addShapeEveryPage(){
	var word=TANGER_OCX_OBJ.ActiveDocument;
	//获取word页数
	var pagesum=word.Application.Selection.Information(4);
	//获取页面的宽度
	var width=word.PageSetup.PageWidth;
	//获取页面的高度
	var height=word.PageSetup.PageHeight;
	//从word文档的最后一页开始往前插入，这样光标会停留在首页
	for(var i=pagesum ;i>=1;i--){
		//获取第i页的开始位置
		word.Application.Selection.GoTo(1,1,i);
		//插入图像
		word.Shapes.AddCanvas(0,0,width,height);
	}
}

/**
 * 删除word中的所有图形；
 * 注：
 * 	1.手写注释也属于图形
 * 	2.shape删除时，立即同步到shapes集合中
 */
function deleteAllShapes(){
	var word=TANGER_OCX_OBJ.ActiveDocument;
    var count=word.shapes.count;
    while(count>0){
        var shape=word.shapes(count);
        shape.Delete();	//删除shape
        count=word.shapes.count;
    }
}
/**
 * 切换显示word中的图形
 * 不指定参数时，自动切换
 * @param isShow [boolean] 是否显示
 */
function toggleWordShapes(isShow){
	var word=TANGER_OCX_OBJ.ActiveDocument;
	var count=word.shapes.count;
	for(var i=1;i<=count;i++){
        if(isEmpty(isShow)){
            var o=word.shapes(i).Visible;
            word.shapes(i).Visible=!o;
        }else{
            word.shpaes(i).Visible=isShow;
        }
	}
}
/**
 * 将红头去掉(转黑头)
 * 注：模板的红头名，需要在redHeadArray添加
 */
function clearRedHeadText(){
	try{
		//只读模式下无法清除
	    var _isReadOnly=isReadOnly;
	    if(_isReadOnly===true){
	        TANGER_OCX_SetReadOnly(false);
	    }
	    //关闭保留痕迹
	    var flag=TANGER_OCX_OBJ.ActiveDocument.TrackRevisions;
	    if(flag==true){
	        TANGER_OCX_SetReviewMode(false);
	    }
	    //文件红头名(注：部分红头间有空格)
		var redHeadArray=[
		                  "金华市人民政府办公室文件",
		                  "金华市人民政府文件",
		                  "金华市人民政府研究室文件",
		                  "金华市人民政府应急管理办公室文件",
		                  "金华市政务公开领导小组办公室",
		                  "金华市政务公开领导小组办公室文件",
		                  "金华市人民政府专题会议纪要",
		                  "金华市人民政府令",
		                  "金华市人民政府常务会议纪要",
		                  "内部明电",
						  "市委常务会议纪要",
						  "市委常委会议纪要",
						  "市委专题会议纪要",
						  "中共金华市委",
						  "中共金华市委办公室",
						  "中共金华市委干部任免通知",
						  "中共金华市委文件",
		                  "中共金华市委办公室文件",
		                  "中 共 金 华 市 委 办 公 室",
		                  "抄   告   单",
		                  "督  查  通  报",
		                  "督  查  汇  报"
		                  ];
		var word=TANGER_OCX_OBJ.ActiveDocument;
		var pars=word.Paragraphs;	//取得所有段落
		var count=pars.count;
		var num=0;					//记录去红头的次数，针对多个红头时
		for(var i=1;i<=count;i++){
			var content=pars(i).Range.Text;	//取得段落范围内的内容
			if($.inArray(content.trim(),redHeadArray)!==-1){
				var font=pars(i).Range.font;
				//font.color=1;	//设置字体颜色为黑色
				pars(i).Range.Text="\r";//清除红头 使用\r可以解决市委抄告单两个头去不掉抄告单的问题
				num+=1;
				if(num===2){
					break;  //红头就二个，执行完立即跳出
				}
			}
			if(i>10){
				break;//寻找超过10行就跳出
			}
		}
		//设置回原来的状态
	    TANGER_OCX_SetReadOnly(_isReadOnly);
	    TANGER_OCX_SetReviewMode(flag);
	}catch(err){
		if(isNtkoDebug==true){
            alert("clearRedHeadText()错误：" + err.number + ":" + err.description);
        }
	}
}

/**
 * 红色反线去色
 * 目前模板中，红色反线有三种方式：
 *  1.使用表格下划线   	通过border判断
 *  2.使用字体下划线		通过font设置
 *  3.使用图形直线		通过shape.line处理
 */
function clearRedHeadLine(){
    var word=TANGER_OCX_OBJ.ActiveDocument;
    var pars=word.Paragraphs;	//取得所有段落
    var count=pars.count;
    var un=false;               //是否跳出
    for(var i=1;i<=count;i++){
        var sum=pars(i).Borders.count;
        //针对公文中的红色反线进行去红处理
        for(var j=1;j<=sum;j++){
            var border = pars(i).Borders(j);
            var c=border.color;
            var v=border.visible;
            //判断边框线为红色，并且是可见
            if(c===255 && v===true){
                border.color=0;//0表示黑色，255表示红色
                un=true;
                break;
            }
        }
        if(un===true){
            break;
        }
    }
}
/**
 * 将word中所有段落的字体、边框、图形颜色改为黑色
 */
function clearAllRedColor(){
    try{
        //只读模式下无法清除
        var _isReadOnly=isReadOnly;
        if(_isReadOnly===true){
            TANGER_OCX_SetReadOnly(false);
        }
        //关闭保留痕迹
        var flag=TANGER_OCX_OBJ.ActiveDocument.TrackRevisions;
        if(flag==true){
            TANGER_OCX_SetReviewMode(false);
        }
        var word=TANGER_OCX_OBJ.ActiveDocument;
        var pars=word.Paragraphs;	//取得所有段落
        var count=pars.count;
        for(var i=1;i<=count;i++){
            var sum=pars(i).Borders.count;
            //针对公文中的红色反线进行去红处理(使用表格下划线的红线)
            for(var j=1;j<=sum;j++){
                pars(i).Borders(j).color=0;
            }
            //所有字体变为黑色
            pars(i).Range.font.color=0;	//0表示黑色，255表示红色
        }
        //处理针对使用图形画的红线
        var scount=word.Shapes.Count;
        for(var s=1;s<=scount;s++){
        	word.shapes(s).Line.ForeColor=0;
        }
        //接收修订，才能生成无痕迹文字
        //TANGER_OCX_AcceptAllRevisions();

        //设置回原来的状态
        TANGER_OCX_SetReadOnly(_isReadOnly);
        TANGER_OCX_SetReviewMode(flag);
    }catch(err){
        if(isNtkoDebug==true){
            alert("clearAllRedColor()错误：" + err.number + ":" + err.description);
        }
    }
}
/**
 * 下载去头/黑头正文
 */
function downloadBlackHeadDoc(){
    var id = $("#wfEntity\\.docDataId").val();
    if(isEmpty(id)){
        alert("对应文档id值docDataId取不到!");
        return;
    }
    //docFileType="ZW_BLACKHEAD"; 黑头正文
    docFileType="ZW_CLEARHEAD";	//去头正文
    var _url = openDocUrl + "?dataId=" + id + "&dataTable=WF_ENTITY&type=" + docFileType;
    var winName = getNewWinName();
    openNewWin(_url,null,null,winName);
}
/**存放打开阅读或打印版式文件的窗口对象 */
var sealLookAndPrintWin;
/**存放发布类型，直接发布和新增发布*/
var publishTypes={
		publish:"publish",
		addPublish:"addPublish"
};
/**
 * 获取当前用户单位可打印的剩余次数
 * 注：
 * 	返回值为-10,则表示打印次数无效，无法打印
 * 	返回值为-1,则表示没有限制打印次数
 * @param times 预备打印次数
 */
function getPrintRemainTimes(times){
	//var op=window.parent.opener.$("#wfEntity\\.id").val();
	//alert("调用父窗口成功");
	var _url="./wfEntityAction!getSealPrintRemainTimes.shtml";
	var p={
			'wfEntity.id':$("#wfEntity\\.id").val()
	}
	$.getJSON(_url,$.param(p),function(data){
		if(typeof(data.fail)!="undefined"){
			sealLookAndPrintWin.alert("请求失败!");
		}else{
			//-10 表示无效的打印次数
			var rtimes=parseInt(data.info);
			if(rtimes>=times || rtimes===-1){
				//alert(rtimes);
				sealLookAndPrintWin.executePrint(times);
			}else{
				sealLookAndPrintWin.alert("剩余打印次数为("+rtimes+")次,无法打印("+times+")次!");
			}
		}
	});
}
/**
 * 刷新盖章可打印次数，在原来剩余的基础上减去已打印的次数
 * @param times
 */
function refreshSealPrintTimes(times){
	var _url="./wfEntityAction!refreshSealPrintTimes.shtml";
	var p={
			'wfEntity.id':$("#wfEntity\\.id").val(),
			'sealPrintTimes':times
	}
	$.getJSON(_url,$.param(p),function(data){
		if(typeof(data.fail)!="undefined"){
			sealLookAndPrintWin.alert("请求失败!");
		}else{
			if(data.info!=="true"){
				sealLookAndPrintWin.alert("刷新盖章次数失败!");
			}
		}
	});
}

//盖章打印文件份数控制
function opt_sealPrintSysOrgs(){
    dialog("盖章文件打印份数控制", "id:sealPrintSysOrg", "400px", "auto", "text");
}
/**
 * 盖章打印文件份数控制确定按钮触发方法
 * 	使用opt_publish时，弹出份数控制框，确认后调用publishOk方法
 * 	使用opt_addPublish时，根据选中的值进行变更盖章控制单位确认后保存
 * @param publishType	发布类型 直接发布为 publish；增加发布对象为 addPublish
 * @returns {Boolean}
 */
function sealPrintSysOrgsOk(publishType){
	var $spt=$(".sealPrintTimes");
	var kv=[];						//存放单位id和对应的打印份数，以冒号分隔
    var err=[];						//存放未设置打印份数的信息
	$.each($spt,function(){
		var $this=$(this);
		if($this.val()==''){
            err.push("["+$this.attr("orgName")+"],可打印份数设置不能为空！");
		}else{
			var sid=$this.attr("orgId");
			var stimes=$this.val();
            kv.push(sid+":"+stimes);
		}
	});
	//针对没有可打印份数的单位进行记录并显示提醒
    if( err.length>0){
        $("span#warningMessage").html("注:<br>"+err.join("<br>")).show();
        return false;
    }else{
    	$("span#warningMessage").html('').hide();
        var p={
            'sealPrintInfos':kv.join(";"),
            'wfEntity.id':$("#wfEntity\\.id").val()
        };
        var _url="./wfEntityAction!ajaxSaveSealPrintInfo.shtml";
        $.getJSON(_url,$.param(p),function(data){
            if(typeof(data.fail)!="undefined"){
                alert("请求失败!");
            }else{
                if(data.info!=="true"){
                    alert("保存各单位打印次数失败!");
                }else{
                	if(publishType===publishTypes.publish){
                		setDialogHide();
                		publishOk();
                	}else{
                		 return true;
                	}
                }
            }
        });
    }
}
//盖章打印份数重置，默认各个单位为3份
function sealPrintSysOrgsReset(){
	$(".sealPrintTimes").val('3');
	$("span#warningMessage").html('').hide();
}
//增加发布对象时，绑定触发盖章打印文件的控制
function addPublishBindSealPrintEvent(){
	$("#wfEntityNextExecuteDTO\\.publishUserIds").bind("change",function(){
		if(isEmpty($("#isFileUrl").val())) return;
		var $this=$(this);
		$("#optAddPublish .tbl tbody .sealPirntSysOrgs").remove();
		$("div#addPublishButton .sealPrintButton").remove();
		if(!isEmpty($this.val())){
			var p={
					'wfEntity.publishUsersId':$this.val()
				};
			var _url="./wfEntityAction!ajaxSealPrintSysOrgs.shtml";
			$.getJSON(_url,$.param(p),function(data){
				if(typeof(data.fail)!="undefined"){
	                alert("请求失败!");
	            }else{
	               if(data.length>0){
	            	   var cs=[];	//存放组装的html页面
	            	   cs.push("<tr class='sealPirntSysOrgs'><th>打印单位份数控制</th><td colspan=2 ><div style='height:400px;overflow:auto;'><table width='100%'>");
	            	   cs.push("<tr><th width='80%'>盖章打印的单位</th><td width='15%'>可打印的份数</td></tr>");
	            	   $.each(data,function(){
	            		    cs.push("<tr><th width='80%'>"+this[1]+"</th><td width='15%'>" +
	            		    		"<input class='sealPrintTimes' type='text' value='3' orgId='"+this[0]+"' orgName='"+this[1]+"'></td></tr>");
	            	   });
                       cs.push("<td colspan='2'><span id='warningMessage' style='color:red;display: none'></span></td>");
	            	   cs.push("</table></div></td></tr>");
	            	   $("#optAddPublish .tbl tbody").append(cs.join(""));
	            	   $("div#addPublishButton").prepend('<button class="sealPrintButton" onclick="sealPrintSysOrgsReset();return false;" >重置打印份数</button>');
	               }
	            }
			});
		}
	});
}
/**
 * 合并word，在当前打开的word首页开始位置插入word内容
 * 注：
 * 	1.每次插入成功后，移动到文档的开始位置
 * 	2.按照参数传入的顺序，word最终显示为倒序
 *
 * @param files  可变参数   文件路径全称或文件url地址
 */
function mergerWordOpt(files){
    var params=arguments;
	if($.isArray(files)){
        params=files;
    }
	var word=TANGER_OCX_OBJ.ActiveDocument;
    for(var i= 0;i<params.length;i++){
        //word.Application.Selection.GoTo(1,1,1); //光标聚焦到第一页开始位置
        //word.Application.Selection.HomeKey(6);	  //光标聚焦当前文档的头部
        word.Application.Selection.EndKey(6);   //光标定位到最后
        word.Application.Selection.Range.Text="\r\n";   //插入换行回车，避免插入到同一个页面中
        word.Application.Selection.EndKey(6);   //重新定位到最后
        var file=params[i];
        if(file.startsWith("http://")){
            TANGER_OCX_OBJ.AddTemplateFromURL(file,true);
        }else{
            TANGER_OCX_OBJ.AddTemplateFromLocal(file,false,true);
        }
    }
    word.Application.Selection.HomeKey(6);	//插入完成后，光标定位到首页
}
/**
 * 将手写处理单插入到收文正文中
 */
function swMerger(){
	var p={
			dataId:$("#wfEntity\\.docDataId").val(),
			dataTable:"WF_ENTITY",
			type:$("#nbStepDealFileType").val()
	};
	var hw_url = openDocUrl + "?"+$.param(p);	//手写办理单url
	mergerWordOpt(hw_url);
}
/**
 * 保存当前文档到附件中
 * @param fileName 文件名 注：该文件名需要跟文件后缀
 * @returns {Boolean}
 */
function saveDocFileToAttachment(fileName){
    if(TANGER_OCX_OBJ==null || TANGER_OCX_bDocOpen==false){
        alert("未打开过ntko控件,不执行保存操作!");
        return false;
    }
    var id = $("#wfEntity\\.docDataId").val();
    if(isEmpty(id)){
        alert("对应文档id值docDataId取不到!");
        return false;
    }
    TANGER_OCX_OBJ.IsUseUTF8Data = true;
    TANGER_OCX_OBJ.IsUseUTF8URL = true;
    var p={
        docId:id,
        formId:"WF_ENTITY"
    }
    var url = "attachmentAction!uploadDocFile.shtml?"+ $.param(p);
    var rtn = TANGER_OCX_SaveDoc(url,"docFile",fileName);
    if(rtn.indexOf("fail")>=0){
        alert(rtn);	//提示错误信息
        return false;
    }
    return true;
}
/* ***************************针对批示流程中合并word文件功能的实现（通过文件上传框实现）************************
 *
 */
/**
 * 合并word文件绑定的触发事件(通过文件选择框绑定的方式)
 */
function mergerWordCtrlBindEvent(){
	if(!$("#mergerWordCtrl").length>0) return;
    var _filechange=function(){
        $("#mergerWordTitle").text("领导批示扫描件:");
        $("#mainWordFile").remove();
        $("#minorWordFile").show();
    }
	$("#mainWordFile").bind("change",function(){
        var err="注:只支持doc格式文件,请选择正确的文档!";
		var $this=$(this);
		if( !isEmpty($this.val()) && $this.val().indexOf(".doc")>=0 ){
			TANGER_OCX_OpenDocFromLocal($this.val());
			_filechange();
		}else{
			alert(err);
		}
	});
    $("#minorWordFile").bind("change",function(){
        mergerFileChangeEvent($(this));
    })
    var selValue={
        "localUpload":"localUpload",
        "attachment":"attachment"
    }
    var swFileType={
        merger:"SW_MERGER",
        draft:docFileType
    }
    var $bakFile=$("#mainWordFile").clone(true);
    $("#mergerWordSelect").bind("change",function(){
        var value=$(this).val();
        if(value===selValue.attachment){
            _filechange();
            var ft=$("#swFileType").val();
            if(!isEmpty(ft)){
                var info=ft.split(":");
                if(info[0]===swFileType.draft){
                    var _id=info[1];
                    var _url=openDocUrl+"?id="+_id;
                    TANGER_OCX_OpenDocByType(_url);
                }
            }else{
                alert("没有收文正文附件!");
            }
        }else if( value ===selValue.localUpload){
            $("#mergerWordTitle").text("批示原稿扫描件:");
            $("#minorWordFile").hide();
            $("#mergerFileContainer").append($bakFile);
        }
    });
}

/**
 * 合并word文件框绑定的具体执行事件
 * 可无限插入文件
 */
function mergerFileChangeEvent($obj){
    var err="注:只支持doc格式文件,请选择正确的文档!";
    var val=$obj.val();
    if(!isEmpty(val) && val.indexOf(".doc")>=0){
        //合并word操作
        mergerWordOpt(val);
        if(confirm("是否继续添加word文件?")){
            $("#mergerWordTitle").text("其他附加文件:");
            var $file=$obj.clone(true); //true表示同时复制事件
            $obj.remove();
            $("#mergerFileContainer").append($file);
        }else{
            //1.自动上传到服务器作为附件；
            var fileName="领导批示和原稿扫描件.doc";
            if(saveDocFileToAttachment(fileName)===true){
                //2.移除word合并div
                $("#mergerWordCtrl").remove();
                //3.重新打开模板
                openDocFile("ZW_DRAFT");
                //4.刷新当前的附
                var uploadObj=getUploadBasicInfo();
                showLatestAttachment(uploadObj.formId,uploadObj.docId);
            }
        }
    }else{
        alert(err);
    }
}
/* ***************************end 针对批示流程中合并word文件功能的实现（通过文件上传框实现）***********************/


/* ***************************针对批示流程中合并word文件功能的实现（当前启用的）***********************************
 * 	1.绑定附件中上传完成的事件
 * 		jquery.appPlugins.js 增加showAddAttachmentWithEvents 携带事件的添加显示附件方法
 * 		在attachment.ftl 中增加 pageAttachmentWithEvents 携带事件的附件上传
 * 		在wfentityform.ftl 中修改附件
 * 	2.根据附件创建列表绑定checkbox触发事件
 * 		选中时，将添加为主合并文件，如果已经有主合并文件，自动添加为从合并文件
 * 		主合并文件取消选中，刷新全部重新选择；从文件取消选中时，移除并返回到列表中
 *  3.合并操作并上传
 *  	确认从文件个数是否大于0
 *  	上传到附件成功，自动删除选中合并的附件
 * */
/**
 * uploadify 文件上传到事件，即选择的文件上传完触发
 * @type {{onUploadComplete: Function}}
 */
var uploadEvents={
    onUploadComplete : function(file) {
        refreshAttachment();
    }
}
/**
 * 组装合并word显示
 */
function refreshAttachment(){
	if(!$("#mergerFileList").length>0) return;
    var uploadObj=getUploadBasicInfo();
    var _url="./attachmentAction!listForAjax.shtml"
    var p={
        "formId":uploadObj.formId,
        "docId":uploadObj.docId
    }
    var $mfs=$("#mergerFileSelect");
    $("#mergerFileList #errMessage").remove();
    $("#mergerFileList .mergerFileTr").remove();
    $(".mergerFileTr",$mfs).remove();
    $("tr[id^='selectedfile_']",$mfs).remove();

    $.getJSON(_url, $.param(p),function(data){
        if(typeof(data.fail)!="undefined"){
            alert("生成附件列表时出错:" + data.fail);
        }
        var strArr = new Array();
        //遍历生成附件列表
        for(var i=0;i<data.length;i++){
            var att = data[i];
            strArr.push("<tr class='mergerFileTr' id=file_"+att.id+">");
            strArr.push("<td widtt='3%'></td><td width='75%'>"+att.attachmentName+"</td>");
            strArr.push("<td width='10%'><input class='mergerFileCb' fileName='"+att.attachmentName+"' type='checkbox' value="+att.id+"></td>");
            strArr.push("</tr>");
        }
        if(strArr.length<=0){
        	strArr.push("<tr id='errMessage'><td colspan=3>无附件，请上传附件后再操作！</td></tr>");
        }
        $("#mergerFileList").prepend(strArr.join(""));
        //checkbox选中事件
        var checkdEvent=function(_this){
            var $this=$(_this);
            var $remfile=$("#file_"+$this.val());
            if($this.is(":checked")){
                /**
                 * 1.选中checkbox，先判断mergerFileSelect下是否有 被选中的文件
                 * 2.取得索引进行编号，再生成tr添加
                 * 3.取消选中，重新排序编号，并移除
                 *
                 */
                var _index=$("tr[id^='selectedfile_']",$mfs).length+1;
                var $selFile=$("<tr id='selectedfile_"+$this.val()+"'><th width='5%' class='sel_index'>"+_index+"</th><td width='75%'>"+$this.attr("fileName")+"</td>"
                    +"<td width='10%'><input class='mergerFileCb' checked fileName='"+$this.attr("fileName")+"' type='checkbox' value="+$this.val()+"></td></tr>"
                );
                $(".mergerFileCb",$selFile).bind("click",function(){
                    /**
                     * 1.取消选中，移除当前tr
                     * 2.获取全部的selectedfile的tr
                     * 3.重新进行编号排序
                     */
                    if(!$(this).is(":checked")){
                       $selFile.remove();
                       $("th.sel_index",$mfs).each(function(index){
                           $(this).text(index+1);
                       });
                       var $clone=$remfile.clone(true);
                       $(".mergerFileCb",$clone).prop("checked",false).bind("click",function(){ checkdEvent(this);});
                       $("#mergerFileList").prepend($clone);
                    }
                });
                $remfile.remove();
                $mfs.append($selFile);
            }
        };
        $("#mergerFileList .mergerFileCb").bind("click",function(){
            checkdEvent(this);
        });
    })
}
/**
 * 执行合并文件的操作
 * returnType返回类型
 * returnType未定义的时候，按照return返回
 * 定义了returnType,则返回boolean值结果，可以用于校验判断
 */
function executeMergerFile(returnType){
	if(!$("#mergerWordCtrl").length>0){
		//针对需要返回true或flase的情况  和不需要返回的情况的处理
		//为了方便能够在 opt_commit中调用
		if(returnType!==undefined){
			return true;
		}else{
			return;
		}
	}
	//针对没有附件的情况下可直接提交
	if(!$("#mergerFileSelect .mergerFileCb").length>0) {
		if(returnType!==undefined){
			return true;
		}else{
			return;
		}
	}
	var mergerIds=[];
	var errfile=[];
    $("#mergerFileSelect .mergerFileCb").each(function(){
    	var _filename=$(this).attr("filename");		 //取得文件名进行校验是否为doc或docx文件
    	if(_filename.match(".doc[x]{0,1}$")!==null){
    		mergerIds.push($(this).val());			 //获取从合并文件id
    	}else{
    		errfile.push(_filename);
    	}
    });
    if(errfile.length>0){
    	alert("不支持非word文件合并,请重新选择文件!\r\n"+errfile.join("\r\n"));
    	if(returnType!==undefined){
			return false;
		}else{
			return;
		}
    }
    if(mergerIds.length<=0){
    	alert("请选择需要合并的文件");
    	if(returnType!==undefined){
			return false;
		}else{
			return;
		}
    }
    //var number=$("#divForm input[txtwordlabel=编号]").val();
    var number=$("#divForm #f_bianhao").val();			//取得编号
    var signdata=$("#divForm #f_qianpiriqi").val();		//取得签批日期
    var signyear=signdata.substring(0,4);				//获取签批日期中的年份
    if(isEmpty(number)||isEmpty(signdata)){
    	alert("请填写批示文件编号和签批日期，否则无法提取合并!");
    	if(returnType!==undefined){
			return false;
		}else{
			return;
		}
    }
    var _url="http://"+window.location.host + _contextPath + "/download.shtml?do_d=xx&id=";
    var mUrls=[];
    $.each(mergerIds,function(){
        mUrls.push(_url+this);
    })
    mergerWordOpt(mUrls);
    //1.自动上传到服务器作为附件；
    var fileName=number+"("+signyear+").doc";		//组装上传文件名
    if(saveDocFileToAttachment(fileName)===true){
        //2.移除word合并div
        $("#mergerWordCtrl").remove();
        //3.删除合并的几个附件
        _url="./attachmentAction!deleteForAjax.shtml";
        $.getJSON(_url, $.param({"ids":mergerIds},true),function(data){
            if(typeof(data.fail)!="undefined"){
                alert("删除文件时出错：" + data.fail);
                return;
            }else{
                //5.刷新当前的附件
                var uploadObj=getUploadBasicInfo();
                showLatestAttachment(uploadObj.formId,uploadObj.docId);
            }
        });
    }
    if(returnType!==undefined){
		return true;
	}else{
		return;
	}
}
/* ***************end 针对批示流程中合并word文件功能的实现end****************************************/


/* ***********批示流程中针对办理部门无法下载主办处室或是创建人上传的附件只可打印功能的处理******************************/
var unableDownloadOnlyPrintEventObj={
		clickEventTitle:"点击即可打开文件进行打印(只支持pdf和word文件打印，其他自动下载);",
		clickEventName:"clickEventExecute(this)"
}
//附件显示中对应a标签的事件执行方法
function clickEventExecute(obj){
	var _filename=$(obj).text();
	var _size=$(obj).attr("size");
	alert(_size);
	var _url="http://"+window.location.host + _contextPath + "/download.shtml?do_d=xx&id=";
	var _attId=$(obj).attr("attId");
	//doc或docx文档直接使用ntko控件进行打印
	if(_filename.match(".doc[x]{0,1}$")!==null){
		alert("注:如果文档较长，请耐心等待打印完成!\r\n打印完成后，将自动切换回原来的页面，再可操作!");
		TANGER_OCX_OBJ.OpenFromURL(_url+_attId);    //需要同步打开，否则调用合并时报错
	    _openedDocFileUrl = _url;
	    TANGER_OCX_PrintDoc();	//打印文档
	    openDocFile("ZW_DRAFT");
	//pdf则使用pdf阅读器的控件进行打印
	}else if(_filename.match(".pdf$")!==null){
		if(isEmpty(_size)||isNaN(_size)||_size<30){
			alert("注:pdf文档打印，需要安装过pdf阅读软件，否则无法正常打印！");
			insertInnerPdf($("#divOfficeContain"),_url+_attId);
		}else{
			var winName = getNewWinName();
			openNewWin(_url+_attId,null,null,winName);
		}
	//其他类型点击可以进行下载操作
	}else{
	    var winName = getNewWinName();
	    openNewWin(_url+_attId,null,null,winName);
	}
    //var word=TANGER_OCX_OBJ.ActiveDocument.Application;
    //var fileName="D:\\My Documents\\123456.doc"
    //word.PrintOut(true,true,0,"","","",0,1,"",0,false,false,fileName);
}
/**
 * 在$div之前插入一个内嵌pdf控件的iframe
 * 加载相应的文件，并执行打印操作
 * @param $div	页面dom元素 jQuery对象
 * @param url	pdf文件流链接
 */
function insertInnerPdf($div,url){
	if($("#innerPdf").length>0){
		var innerPdf=this.innerPdf.document.getElementById("pdfActivexObj");
		innerPdf.src=url;	//加载pdf
		innerPdf.printWithDialog();
	}else{
		//此处width不能为0，否则无法弹出打印窗口
		var inner="<iframe id='innerPdf' border=0 width=100% height=0 ></iframe>";
		$div.before(inner);
		var innerDoc=this.innerPdf.document;
		innerDoc.write('<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" name="pdfActivexObj" id="pdfActivexObj" width="0" height="0" border="0">');
		innerDoc.write('	<param name="toolbar" value="false">');
		innerDoc.write('	<param name="_Version" value="65539">');
		innerDoc.write('	<param name="_StockProps" value="0">');
		innerDoc.write('</object>');
		var innerPdf=innerDoc.getElementById("pdfActivexObj");
		innerPdf.src=url;	//加载pdf
		innerPdf.printWithDialog();//弹出打印对话框窗口
		//$(inner).remove();	不能使用，printWithDialog是个异步操作，在打印前则就会执行remove
	}
}
//禁止批示流程中的保存或另存为文档的操作，以及复制拷贝的操作
function stopSaveAndCopyDoc(){
	if($("#wfDefineInfo\\.wfTypeLib\\.id").val()!=="5") return;
	TANGER_OCX_EnableFileSaveAsMenu(false);	//禁止另存为
	TANGER_OCX_EnableFileSaveMenu(false) 	//禁止保存
	TANGER_OCX_IsNoCopy(true);				//禁止拷贝内容
}
//提交后对文档进行保护，使其不能修改但是可复制（针对批示流程文档新建提交之后）(未使用)
function afterCommitProtectDocUnEdit(){
	if($("#wfDefineInfo\\.wfTypeLib\\.id").val()!=="5" || $("#wfEntity\\.status").val()!=="CREATED") return;
	TANGER_OCX_UnEditDoc();
}

/* ********批示流程中针对办理部门无法下载主办处室或是创建人上传的附件只可打印功能的处理end*******************************/



/* ************处理规范性文件编号 start*******/
function selectedNormativeDoc(){
	if(_editState.toLocaleLowerCase()!=="modify") return;
	var _formDocNumType="规范性文件编号";
	var $ndNum=$("#divForm input[txtwordlabel='规范性文件号']");
	var _formDefaultDocNumName=$ndNum.attr("txtdefaultdocnumname");	//默认机关代字
	if($ndNum.length>0){
		var _val=$ndNum.val();
		var _i=_val.indexOf("-");
		var _li=_val.lastIndexOf("-");
		var ndNum_name=_val.substring(0,_i);
		var ndNum_year=_val.substring(_i+1,_li)
		var ndNum_order=_val.substring(_li+1);
        var $nnDiv=$("#divForm div#_normative_num");
		if($nnDiv.length===0){
            var strArr = new Array();
            strArr.push('<div id="_normative_num" name="_normative_num">');
            strArr.push('	<select id="f_normativeNum_name" name="f_normativeNum_name" style="width:85px;" oldValue="' + ndNum_name+'"></select>');
            strArr.push('	-');
            strArr.push(	'<select id="f_normativeNum_year" name="f_normativeNum_year" style="width:55px;" oldValue="' + ndNum_year + '"></select>');
            strArr.push('	-');
            strArr.push('	<input type="text" id="f_normativeNum_order" name="f_normativeNum_order" style="width:35px;" oldValue="' + ndNum_order + '" value="'+ndNum_order+'">');
            strArr.push('	<input type="button" name="_btn_normativeNum_ok" id="_btn_normativeNum_ok" value="确定" title="检测字号是否存在；不存在则给字号档案加1" style="width:28px;font-size:9px;">');
            strArr.push('	<input type="button" name="_btn_normativeNum_cancel" id="_btn_normativeNum_cancel" value="取消" title="取消对字号数据的修改，恢复到原先的值" style="width:28px;font-size:9px;">');
            strArr.push('</div>');
            $ndNum.before(strArr.join(""));

            $nnDiv=$("#divForm div#_normative_num");
            var $bnnOk=$("#_btn_normativeNum_ok",$nnDiv);
            var $bnnCancel=$("#_btn_normativeNum_cancel",$nnDiv);
            //绑定确定按钮单击事件
            $bnnOk.on("click",function(){
                /*
                 *1.取得行政区代码，年份，序号
                 *2.遍历取得值并更新oldValue属性
                 *3.显示到规范性文件编号中并隐藏下拉选择框
                 */
            	var $nnVals=$("#f_normativeNum_name,#f_normativeNum_year,#f_normativeNum_order");
                var nnArray=[];
                $nnVals.each(function(){
                    var _nnVal=$(this).val();
                    $(this).attr("oldValue",_nnVal);
                });
            	$ndNum.val(getFullNormativeNum($nnDiv));
                $nnDiv.hide();
                showModifyBtu();
                $ndNum.show();

            });
            //绑定取消按钮单击事件
            $bnnCancel.on("click",function(){
                var $nnVals=$("#f_normativeNum_name,#f_normativeNum_year,#f_normativeNum_order");
                var nnArray=[];
                $nnVals.each(function(){
                    var _nnVal=$(this).attr("oldValue");
                    nnArray.push(_nnVal);
                });
                $ndNum.val(nnArray.join("-"));
                $nnDiv.hide();
                showModifyBtu();
                $ndNum.show();
            });

            fillNumNames(_formDocNumType,ndNum_name,_formDefaultDocNumName);
            //当设置了默认规范文件编号时，则填充年号的时候，需要即使更新ndNum_name
            if(isEmpty(ndNum_name) && !isEmpty(_formDefaultDocNumName)){
            	ndNum_name=_formDefaultDocNumName;
            }
            fillNumYears(_formDocNumType,ndNum_name,ndNum_year);

            bindSelectChangeEvent($ndNum,$nnDiv,_formDocNumType,ndNum_name,ndNum_year);
            //$bnnOk.trigger("click");
            if(!isEmpty(_val)){
            	$nnDiv.hide();
            	$ndNum.css("width","50%").prop("readOnly",true);
            	showModifyBtu();
            }else{
            	$ndNum.css("width","50%").prop("readOnly",true).hide();
            }
        }else{
        	$ndNum.hide();
        	$nnDiv.show();
        }
	}

	//针对规范性文件编号的下拉菜单和输入框的事件绑定
	function bindSelectChangeEvent($ndNum,$nnDiv,_formDocNumType,ndNum_name,ndNum_year){
		$ndNum.on("input propertychange",function(){
			TANGER_OCX_setBookMarkValue($(this).attr("txtwordlabel"),$(this).val());
		});
		$("select#f_normativeNum_name",$nnDiv).on("change",function(){
			fillNumYears(_formDocNumType,$(this).val(),ndNum_year);
			$("input#f_normativeNum_order",$nnDiv).val("");
			$ndNum.val(getFullNormativeNum($nnDiv));
		});
		$("select#f_normativeNum_year",$nnDiv).on("change",function(){
			$ndNum.val(getFullNormativeNum($nnDiv));
			$("input#f_normativeNum_order",$nnDiv).val("");
		});
		//字号__序号
		$("input#f_normativeNum_order",$nnDiv).on("keyup blur",function(){
			$ndNum.val(getFullNormativeNum($nnDiv));
		});
	}
	//获取规范性文件编号全称
	function getFullNormativeNum($nnDiv){
		var $nnVals=$("#f_normativeNum_name,#f_normativeNum_year,#f_normativeNum_order",$nnDiv);
        var nnArray=[];
        $nnVals.each(function(){
            var _nnVal=$(this).val();
            nnArray.push(_nnVal);
        });
        return nnArray.join("-");
	}
	//填充规范性文件编号
	function fillNumNames(_formDocNumType,ndNum_name,_formDefaultDocNumName){
		$.ajax({
			async: false,
		   	type: "POST",
		   	url: "./formDocNumAction!listNamesByTypeOrgId.shtml",
		   	data: { "type": _formDocNumType},
		   	dataType: "json",
		   	success: function(data){
					if(typeof(data.fail)!="undefined"){
						alert("取得字号信息时出错：" + data.fail);
						return;
					}
					$("#f_normativeNum_name").empty();
					//增加一个空的下拉选项
					$("#f_normativeNum_name").append('<option value=""></option>');
					$.each(data, function(i, sname){
						$("#f_normativeNum_name").append('<option value="' + sname + '">' + sname + '</option>');
					});
					//设置当前字号
					if(ndNum_name==null || ndNum_name==""){
						$("select#f_normativeNum_name > option[value='" + _formDefaultDocNumName + "']").attr("selected",true);
					}else{
						$("select#f_normativeNum_name > option[value='" + ndNum_name + "']").attr("selected",true);
					}
		   	}
		});
	}
	function fillNumYears(_formDocNumType,ndNum_name,ndNum_year){
		if(isEmpty(ndNum_name)){
			$("select#f_normativeNum_year").empty();
			//增加一个空的下拉选项
			$("select#f_normativeNum_year").append('<option value=""></option>');
		}else{
			$.ajax({
				async: false,
			   	type: "POST",
			   	url: "./formDocNumAction!listYearsByTypeAndName.shtml",
			   	data: {
						"formDocNum.type":_formDocNumType,
						"formDocNum.name":ndNum_name
				},
			   	dataType: "json",
			   	success: function(data){
						if(typeof(data.fail)!="undefined"){
							alert("取得字号：" + ndNum_name + " 的年度信息时出错：" + data.fail);
							return;
						}else{
							$("select#f_normativeNum_year").empty();
							$.each(data, function(i, year){
								$("select#f_normativeNum_year").append('<option value="' + year + '">' + year + '</option>');
							});
							// 设置默认年度
							var year = (new Date()).getYear();
							if(ndNum_year==null || ndNum_year==""){
								$("select#f_normativeNum_year > option[value='" + year + "']").attr("selected",true);
							}else{
								$("select#f_normativeNum_year > option[value='" + ndNum_year + "']").attr("selected",true);
							}
						}
		   		}
			});
		}
	}
	function showModifyBtu(){
		if($(":button#_btn_normativeNum_modify").length==0){
            $ndNum.after('<input type="button" id="_btn_normativeNum_modify" name="_btn_normativeNum_modify" value="修改" title="进入字号的修改状态">');
            $(":button#_btn_normativeNum_modify").click(function(){
                $(this).remove();
                selectedNormativeDoc();
                return false;
            }).show();
        }
	}
}
/* ************处理规范性文件编号end*******/

/* *****************领导讲话表单绑定start*******************/
function leaderSpeechEvent(obj,isLeaderSpeech) {
	//isLeaderSpeech为true表示明确是领导讲话，则不进行confirm和alert
	isLeaderSpeech=isLeaderSpeech||confirm("是否为领导讲话文件?");
	if(isLeaderSpeech){
		var $this = $(obj);
		var objId = $this.attr("id");
		var readOnly = $this.prop("readOnly");
		if (readOnly === false) {
			//openReferenceM('PermUserGroup', 'leaderSpeechGroup', objId + '=value2&objid=value1&masterParams=313');
			openReferenceM('SysDictData','laderSpeechDict',objId + '=value2&objid=value1',null,true,'laderSpeechDict','');
		}
	}else{
		alert("不是领导讲话文件，该项不需要填写!");
		$(obj).val("");
	}
}
/* *****************领导讲话表单绑定end*********************/

function loadPublisherTree(mapValue){
	var match=["257"];
	var checkValue=$("#wfEntity\\.wfDefineInfo\\.id").val();
	//针对会议通知选择发布对象时，只显示市领导和市政府
	if($.inArray(checkValue,match)!==-1){
		openReferenceM('SysDept','meetingNoticeTree',mapValue);
	}else{
		openReferenceM('SysDept','dept2',mapValue);
	}
}

/********************收文编号********************/
/*	格式:当前年月日+手动输入序号 如:2013091801	*/
/*	20130918自动生成当前日期，序号生成输出框	*/
/********************收文编号********************/
function autoGenerateDateNumberEvent(){
	if(_editState.toLocaleLowerCase()!=="modify") return;

	var _formDocNumType="收文编号";
	var $number=$("#divForm input[txtwordlabel='收文编号']");


	if($number.length>0){
		var old_date=$number.val().substring(0,8);
		var old_order=$number.val().substring(8);
		var cur_date=isEmpty(old_date)?new Date().format("yyyyMMdd"):old_date;
		var $agn_div=$("#auto_generate_number");
		if($agn_div.length===0){
			var html=[];

			html.push("<div id='auto_generate_number'><span id='number_date'>"+cur_date+"</span><input type='text' id='number_order' name='number_order'></input></div>");
			$number.before(html.join(",")).hide();
			$agn_div=$("#auto_generate_number");
			//绑定键盘输入事件
			var _innerCss={"font-size":"18px","color":"red"};
			$("#auto_generate_number #number_date").css(_innerCss);
			$("#auto_generate_number #number_order").css(_innerCss).val(old_order).on("keyup",function(){
				var _val=$("#auto_generate_number #number_date").text()+$("#auto_generate_number #number_order").val();
				$number.val(_val);
			}).on("blur",function(){		//失去焦点后，自动显示
				var _val=$("#auto_generate_number #number_date").text()+$("#auto_generate_number #number_order").val();
				$number.val(_val);
				$number.show();
				show_modify_button();
				$agn_div.remove();
			});

			if(!isEmpty($number.val())){
				$number.show();
				show_modify_button();
				$agn_div.hide();
			}else{

			}
		}else{
			$agn_div.show();
			$number.hide();
		}
	}

	function show_modify_button(){
		if($(":button#_auto_generate_number_modify").length==0){
			$number.css("width","50%");
            $number.after('<input type="button" id="_auto_generate_number_modify" value="修改" >');
            $(":button#_auto_generate_number_modify").click(function(){
                $(this).remove();
                autoGenerateDateNumberEvent();
                return false;
            }).show();
        }
	}
}


//----------------------------------------二维码相关的JS方法-----------------------------------------------//
/**
 * 如果存放二维码图片的路径不存在，则创建
 */
function createDir(){
	var strFolder = htkyBarCodeTempDir;
	var objFSO = new ActiveXObject("Scripting.FileSystemObject");
	// 检查文件夹是否存在
	if (!objFSO.FolderExists(strFolder)){
		// 创建文件夹
		var strFolderName = objFSO.CreateFolder(strFolder);
	}
}

/**
* 向当前页面的office文档中插入二维码和text文本框
* （该方法仅适用于市政府领导批示流程）
*/
function insertBarCodeAndTextBox(){

	// 先检查存放二维码图片的路径是否存在，不存在，则创建
	//createDir();

	var lib = $("#wfTypeLibId").val();
	// 获取当前日期
	var nowDay = (new Date()).format("yyyyMMdd");
	// 获取当前用户所在处室
	var deptName = $("#cur_deptName").val();
	// 文件创建时间
	var fileCreateDate="";
	if(!isEmpty($("#wfEntity\\.createDate").val())){
		fileCreateDate = $("#wfEntity\\.createDate").val();
	}else{
		fileCreateDate = nowDay;
	}
	// 生成的二维码图片路径
	var barCodePath = "";

	// 批示的场合
	if(!isEmpty(lib) && lib==5){

		// 先校验需要写入二维码的内容是否存在，不存在，则提示
		var flowId = $("#wfEntity\\.id").val();
		var bianhao = $("#f_bianhao").val();
		var qianpiriqi = $("#f_qianpiriqi").val();
		var title = $("#f_wenjianzhuti").val();

		// 如果有任何一个不存在，则不生成二维码、
		if(isEmpty(flowId)){
			alert("请先保存该流程，再生成二维码！");
			return false;
		}

		if(isEmpty(bianhao) || isEmpty(qianpiriqi) || isEmpty(title)){
			alert("标题、编号、签批日期不能为空！");
			return false;
		}

		$.ajax({
            type: 		"POST",
            dataType:	"json",
            async:		true,
            url: 		"docFileAction!ajaxCreateBarCode.shtml?r=" + Math.random(),
            data: {
                "wfEntityId"     :flowId,
                "barcode"        :flowId,
                "barFileName"    :title,
                "fileNum"        :bianhao,
                "fileCreateDate" :"",
                "sendDept"       :"",
                "mainSendDept"   :"",
                "other"          :"签批日期"+qianpiriqi
            },
            success: function(data){
                if(typeof(data.fail)!="undefined"){
                    alert("创建二维码时出错:" + data.fail);
                    return;
                }else{
                	if(data.result=="fail"){
                		alert("创建二维码时出错:" + data.content);
	                    return;
                	}else if(data.result=="success"){

                		var url = openDocUrl + "?id=" + data.content;
                		addPicFromUrl(url,780,40);

                		// 生成并插入编号文本框
                		insertTextBoxPs(bianhao);

                		alert("二维码添加成功！");
                		return false;
                	}else{
                		alert("创建二维码时出错:未知原因，请联系系统管理员！");
                        return;
                	}
                }
            }
        });

	}else if(!isEmpty(lib) && lib==1){

		// 先校验需要写入二维码的内容是否存在，不存在，则提示
		var flowId = $("#wfEntity\\.id").val();
		var swBianhao = $("#f_shouwenwenhao",window.parent.document).val();
		var swRiqi = $("#f_shouwenriqi",window.parent.document).val();
		var title = $("#f_wenjianbiaoti",window.parent.document).val();

		// 如果有任何一个不存在，则不生成二维码、
		if(isEmpty(flowId)){
			alert("请先保存该流程，再生成二维码！");
			return false;
		}

		if(isEmpty(swRiqi) || isEmpty(title)){
			alert("标题、收文日期不能为空！");
			return false;
		}

		if(swBianhao=="undefined" || isEmpty(swBianhao)){
			swBianhao="";
		}

		$.ajax({
            type: 		"POST",
            dataType:	"json",
            async:		true,
            url: 		"docFileAction!ajaxCreateBarCode.shtml?r=" + Math.random(),
            data: {
                "wfEntityId"     :flowId,
                "barcode"        :flowId,
                "barFileName"    :title,
                "fileNum"        :swBianhao,
                "fileCreateDate" :swRiqi,
                "sendDept"       :"",
                "mainSendDept"   :"",
                "other"          :""
            },
            success: function(data){
                if(typeof(data.fail)!="undefined"){
                    alert("创建二维码时出错:" + data.fail);
                    return;
                }else{
                	if(data.result=="fail"){
                		alert("创建二维码时出错:" + data.content);
	                    return;
                	}else if(data.result=="success"){

                		var url = openDocUrl + "?id=" + data.content;
                		addPicFromUrl(url,780,40);

                		// 生成并插入编号文本框
                		if(!isEmpty(swBianhao)){
                			insertTextBoxSw(swBianhao);
                		}

                		alert("二维码添加成功！");
                		return false;
                	}else{
                		alert("创建二维码时出错:未知原因，请联系系统管理员！");
                        return;
                	}
                }
            }
        });

	}else if(!isEmpty(lib) && lib==0){

		// 先校验需要写入二维码的内容是否存在，不存在，则提示
		var flowId = $("#wfEntity\\.id").val();
		var fwWenHao = $("#f_wenhao",window.parent.document).val();
		var title = $("#f_wenjianzhuti",window.parent.document).val();
		var senddept = $("#f_fawendanwei",window.parent.document).val();
		var mainSendDept = $("#f_zhusongdanwei",window.parent.document).val();
		var fileCDate = $("#f_fawenshijian",window.parent.document).val();

		// 如果有任何一个不存在，则不生成二维码、
		if(isEmpty(flowId)){
			alert("请先保存该流程，再生成二维码！");
			return false;
		}

		if(isEmpty(fwWenHao) || isEmpty(title)){
			alert("标题、发文文号不能为空！");
			return false;
		}

		if(!isEmpty(fwWenHao) && fwWenHao.indexOf("便签") < 0){
			alert("发文只有机关代字选择便签才可以添加二维码！");
			return false;
		}

		if(fwWenHao=="undefined" || isEmpty(fwWenHao)){
			fwWenHao="";
		}

		$.ajax({
            type: 		"POST",
            dataType:	"json",
            async:		true,
            url: 		"docFileAction!ajaxCreateBarCode.shtml?r=" + Math.random(),
            data: {
                "wfEntityId"     :flowId,
                "barcode"        :flowId,
                "barFileName"    :title,
                "fileNum"        :fwWenHao,
                "fileCreateDate" :fileCDate,
                "sendDept"       :senddept,
                "mainSendDept"   :mainSendDept,
                "other"          :""
            },
            success: function(data){
                if(typeof(data.fail)!="undefined"){
                    alert("创建二维码时出错:" + data.fail);
                    return;
                }else{
                	if(data.result=="fail"){
                		alert("创建二维码时出错:" + data.content);
	                    return;
                	}else if(data.result=="success"){

                		var url = openDocUrl + "?id=" + data.content;
                		if(TANGER_OCX_bDocOpen){
                			addWaterMarkPicFromLocal(url,300);
                		}

                		alert("二维码添加成功！");
                		return false;
                	}else{
                		alert("创建二维码时出错:未知原因，请联系系统管理员！");
                        return;
                	}
                }
            }
        });

	}

}

// 在word的每页上生成二维码
function insertBarCodeOnEveryPage(barContent){
	var txt = barContent;
	if(txt==null || txt=="" || typeof(txt)=="undefined"){
		alert("要生成的二维码内容不能为空！");
		return;
	}else{
		insertBarCodePDF417OnEveryPage(txt);
	}
}

//根据内容生成二维码图片，并将图片插入到word中
function insertBarCodePDF417OnEveryPage(txt) {
	//设置正常的用户授权信息，否则将不能正常使用该产品
	PDF417Manager.CopyRight = "授权金华市人民政府[专用]";
	PDF417Manager.SetBarCodeType(1);
	if (!PDF417Manager.IsAuthorized) {
		alert("非法授权或授权已过期！");
		return;
	}
	//alert(PDF417Manager.About);

	//设置图片宽度和高度范围，设置最小和最大均为0，则使用当前图片宽度、高度自动设置
	PDF417Manager.LimitWidth(0, 0);
	PDF417Manager.LimitHeight(0, 0);

	//设置图片宽度，实际宽度将接近且不大于设置值；设置为0则使用当前图片宽度、高度自动设置
	PDF417Manager.BestWidth = 0;

	//设置编码字符串
	mResult = PDF417Manager.SetBarCodeString(txt, true)

	if (mResult) {
		alert("二维码生成失败！！");
		return;
	}
	var mPath = PDF417Manager.GetBarCodeFile(".gif");
	mPath = mPath.replace('\\\\', '\\');
	//alert("生成的二维码文件为：" + mPath);
	//tdPreview.innerHTML = "<img src='"+mPath+"'/>";
	//addPicFromLocal(mPath,780,40);
	if(TANGER_OCX_bDocOpen){
		addWaterMarkPicFromLocal(mPath,300);
	}
}

//生成二维码
function insertBarCode(barContent){
	var txt = barContent;
	if(txt==null || txt=="" || typeof(txt)=="undefined"){
		alert("要生成的二维码内容不能为空！");
		return;
	}else{
		insertBarCodePDF417(txt);
	}
}


//根据内容生成二维码图片，并将图片插入到word中
function insertBarCodePDF417(txt) {
	//设置正常的用户授权信息，否则将不能正常使用该产品
	PDF417Manager.CopyRight = "授权金华市人民政府[专用]";
	PDF417Manager.SetBarCodeType(1);
	if (!PDF417Manager.IsAuthorized) {
		alert("非法授权或授权已过期！");
		return;
	}
	//alert(PDF417Manager.About);

	//设置图片宽度和高度范围，设置最小和最大均为0，则使用当前图片宽度、高度自动设置
	PDF417Manager.LimitWidth(0, 0);
	PDF417Manager.LimitHeight(0, 0);

	//设置图片宽度，实际宽度将接近且不大于设置值；设置为0则使用当前图片宽度、高度自动设置
	PDF417Manager.BestWidth = 0;

	//设置编码字符串
	mResult = PDF417Manager.SetBarCodeString(txt, true)

	if (mResult) {
		alert("二维码生成失败！！");
		return;
	}
	var mPath = PDF417Manager.GetBarCodeFile(".gif");
	mPath = mPath.replace('\\\\', '\\');
	//alert("生成的二维码文件为：" + mPath);
	//tdPreview.innerHTML = "<img src='"+mPath+"'/>";
	addPicFromLocal(mPath,780,40);
	//alert("二维码添加成功！");
}


//将图片插入到word文件中(用于将生成的二维码图片文件插入到文件中)
function addPicFromLocal(url,top,left)	{
	if(TANGER_OCX_bDocOpen){

		try
		{
			TANGER_OCX_OBJ.AddPicFromLocal(url,//插入的文件路径
				false,//是否提示选择
				true, //是否浮动
				left,//左边距
				top,//上边距 根据Relative的设定选择不同参照对象
				3,  //Relative,取值1-4。设置左边距和上边距相对以下对象所在的位置 1：光标位置；2：页边距；3：页面距离 4：默认设置栏，段落
				130,//缩放印章,默认100%
				1);   //0印章位于文字下方,1位于上方
		}
		catch(error){}
	}
}

//将远程图片插入到word文件中(用于将生成的二维码图片文件插入到文件中)
function addPicFromUrl(url,top,left)	{
	if(TANGER_OCX_bDocOpen){

		try
		{

			TANGER_OCX_OBJ.AddPicFromURL(URL,//URL 注意；URL必须返回Word支持的图片类型。
					false,//是否浮动图片
					left,//左边距
					top,//上边距 根据Relative的设定选择不同参照对象
					3,  //Relative,取值1-4。设置左边距和上边距相对以下对象所在的位置 1：光标位置；2：页边距；3：页面距离 4：默认设置栏，段落
					100,//缩放印章,默认100%
					1);   //0印章位于文字下方,1位于上方
		}
		catch(error){}
	}
}

//生成文本框
function insertTextBoxSw(content){
	try {
		//	AddTextbox(文本方向,left,top,width,heigth);
		var txt = TANGER_OCX_OBJ.ActiveDocument.Shapes.AddTextbox(1, 40, 748, 165, 30);
		txt.TextFrame.TextRange = content;
		//alert("公文二维码文本框生成成功！");

		return;
	} catch (err) {
		alert("生成文本框时出错：" + err.number + ":" + err.description);
	} finally {
	}
}

//生成文本框
function insertTextBoxPs(content){
	try {
		//	AddTextbox(文本方向,left,top,width,heigth);
		var txt = TANGER_OCX_OBJ.ActiveDocument.Shapes.AddTextbox(1, 40, 753, 165, 22);
		txt.TextFrame.TextRange = content;
		//alert("公文二维码文本框生成成功！");

		return;
	} catch (err) {
		alert("生成文本框时出错：" + err.number + ":" + err.description);
	} finally {
	}
}

/**
 * 获取字符串长度
 * @param str
 * @returns {Number}
 */
function getStrLength(str) {
    ///<summary>获得字符串实际长度，中文2，英文1</summary>
    ///<param name="str">要获得长度的字符串</param>
    var realLength = 0, len = str.length, charCode = -1;
    for (var i = 0; i < len; i++) {
        charCode = str.charCodeAt(i);
        if (charCode >= 0 && charCode <= 128) realLength += 1;
        else realLength += 2;
    }
    return realLength;
}

/**
 * 选择分期日期
 */
function selectPeriodsDate(){

	alert("进来了");
	window.open("http://localhost:9090/joa3_group_szf/workflow/jet/test.html");
	return;
}

/**
 * 选择期数
 */
function getQiShu(){

	if(isEmpty($("#wfEntity\\.id").val())){

		alert("请先保存批示流程信息，再进行期数的设置！");
		return;
	}

	if($("#wfEntity\\.status").length >0 && ($("#wfEntity\\.status").val()=="RUNNING" || $("#wfEntity\\.status").val()=="CREATED")){


		if($("#f_banlishixian").length <=0 || ($("#f_banlishixian").length > 0 && $("#f_banlishixian").val()!="5") ){

			alert("只有分期办的批示，才能进行期数的设置！");
			return;
		}

		// 进行期数日期的选择
		art.dialog.open("./r.shtml?p=/workflow/jet/include/MultiDates.ftl", {
			title: '期数选择设置',
			lock: true,
			width: 320,
			height: 280,
	        ok: function() {
	        	var $obj = $(this.iframe.contentWindow.document);
	        	var expressionValue = $obj.find("#f_shezhiqishu").val();// 读取页面返回的表达式计算值

	            if (expressionValue !== undefined){

	            	// 同时保存后台期数信息
	            	$.getJSON("./wfPeriodsInfoAction!ajaxCreatePeriodsInfo.shtml?entityId=" + $("#wfEntity\\.id").val()+"&periodsDates="+expressionValue, function(data){
	                    if(typeof(data.fail)!="undefined"){
	                        alert("期数信息设置时失败：" + data.fail);
	                        return;
	                    }else{

	                    	if(data.result=="success"){
	                    		$("#f_shezhiqishu").val(expressionValue);			// 表达式计算值
	                    		alert("期数信息设置成功！");
	                    		return;
	                    	}else{
	                    		alert("期数信息设置失败："+data.errorMessage);
	                    		return;
	                    	}
	                    }
	                });

	            }

	        },
	        cancel: true
	    });
	}else{
		alert("流程已结束，无法进行期数的设置！");
		return;
	}

}


//-----------------用于将二维码图片传到服务器上-----------------------------//
/**上传生成的二维码图片文件**/
function uploadBarCodeFile(barCodePath){

	 var uploadObj=getUploadBasicInfoBarCode();
	 var uploadUrl="http://"+window.location.host + _contextPath + "/attachmentAction!uploadBarCodeImage.shtml?";
	 var uploadFiles=[barCodePath];

	 var uploadSuccess=[];
	 $.each(uploadFiles,function(){
		 if(fileExists(this)) {
			 //组装上传url
			 var _url=uploadUrl+$.param(uploadObj);
			 //+encodeURI("&sursenFileName="+this);
			 //上传文件
			 var isUploadSuccess=uploadserver(this,_url);
			 if(isUploadSuccess){
				 uploadSuccess.push(isUploadSuccess);
			 }
		 }
	 });
	 if(uploadSuccess.length==2) {
		 alert("上传成功！");
	 }
}

/**
 * 检查文件是否存在
 * @param file 需要检查的文件
 * @returns 存在返回true，不存在返回false
 */
function fileExists(file){
	var fso = new ActiveXObject("Scripting.FileSystemObject");
	var isExists=fso.FileExists(file);	//文件是否存在
	return isExists;
}

/**获得组装基本上传信息的对象**/
function getUploadBasicInfoBarCode(){
	var formId="WF_ENTITY";
	var docId=$("#wfEntity\\.docDataId").val();
	var basic={
		formId:formId,
		docId:docId
	};
	return basic;
}


/** 根据批示类型显示具体批示性质 **/
function showPishiType(obj){
    var selectValue   = obj.value;                                              // 批示类型值
    var yuejianxz     = document.getElementById("f_yuejianxingzhi");            // 阅件性质对象
    var banlisx       = document.getElementById("f_banlishixian");              // 办件性质对象
    var pishiTypeNote = document.getElementById("f_pishiTypeNote");               // 办件性质对象说明对象
    if (selectValue == "1") {                                                   // 办件
        banlisx.style.display="block";
        yuejianxz.style.display="none";
        yuejianxz.options.selectedIndex =0;
        $("#f_fankui").val("true");
    } else if (selectValue == "2") {                                            // 阅件
        yuejianxz.style.display="block";
        banlisx.style.display="none";
        banlisx.options.selectedIndex =0;
        pishiTypeNote.value = "";
        $("#f_fankui").val("false");
    } else {
        banlisx.style.display="none";
        yuejianxz.style.display="none";
        banlisx.options.selectedIndex =0;
        yuejianxz.options.selectedIndex =0;
        pishiTypeNote.value = "";
        $("#f_fankui").val("");
    }
}

/** 根据办件性质对象显示办件性质说明  **/
function showPishiTypeNote(obj){
    var selectValue = obj.value;                                                // 办件性质值
    var pishiTypeNote = document.getElementById("f_pishiTypeNote");               // 办件性质对象说明对象
    var pishiTypeQixian = document.getElementById("f_pishiTypeQixian");               // 办件性质对象说明对象
    if (selectValue == "1") {                                                  // 【即办】
        pishiTypeNote.value = "2日内办结";
        pishiTypeQixian.value = "2";
    } else if (selectValue == "2") {                                           // 【周办】
        pishiTypeNote.value = "7日内办结";
        pishiTypeQixian.value = "7";
    } else if (selectValue == "3") {                                           // 【旬办】
        pishiTypeNote.value = "10日内办结";
        pishiTypeQixian.value = "10";
    } else if (selectValue == "4") {                                           // 【半月办】
        pishiTypeNote.value = "15日内办结";
        pishiTypeQixian.value = "15";
    } else if (selectValue == "5") {                                           // 【分期办】
        pishiTypeNote.value = "分阶段落实";
    } else if (selectValue == "6") {                                           // 【指导性】
        pishiTypeNote.value = "指导性处理";
    } else if (selectValue == "7") {                                           // 【月办】
        pishiTypeNote.value = "1个月内办结";
        pishiTypeQixian.value = "30";
    } else {
        pishiTypeNote.value = "";
        pishiTypeQixian.value = "";
    }
}

/**
 *  关注动作
 */
function opt_attention(){

	// 准备关注所需的参数
	var tableObjectName = "WF_ENTITY";
	var tableId = $("#wfEntity\\.id").val();
	var title = $("#wfEntity\\.name").val();

	if(isEmpty(tableId) || isEmpty(title)){

		alert("获取被关注公文的信息失败，无法关注！");
		return;
	}

	//alert("开始执行");
	// 执行关注动作
	$.getJSON("./myAttentionAction!attentionDo.shtml?tableObjectName=" + tableObjectName+"&tableId="+tableId+"&title="+encodeURI(title), function(data){
        if(typeof(data.fail)!="undefined"){

            alert("执行关注动作时失败：" + data.fail);
            return;
        }else{

            if(data.result=="YES"){
            	alert("关注成功！" );
                return;
            }else if(data.result=="NO"){
            	alert(data.content);
                return;
            }else{
            	alert("关注失败！" );
                return;
            }
        }
    });
}

/**
 * 取消关注
 */
function opt_cancelAttention(){

	// 准备关注所需的参数
	var tableObjectName = "WF_ENTITY";
	var tableId = $("#wfEntity\\.id").val();

	if(isEmpty(tableId)){

		alert("获取需要取消关注公文的信息失败，无法取消关注！");
		return;
	}
	// 执行关注动作
	$.getJSON("./myAttentionAction!cancelAttention.shtml?tableObjectName=" + tableObjectName+"&tableId="+tableId, function(data){
        if(typeof(data.fail)!="undefined"){

            alert("执行取消关注动作时失败：" + data.fail);
            return;
        }else{

            if(data.result="YES"){
            	alert("取消关注成功！" );
                return;
            }else{
            	alert("取消关注失败！" );
                return;
            }
        }
    });
}

/**
 * 查看审核标准
 */
function opt_seeStandard(){

	var standardContent = $("#curStep\\.auditingStandardsId").val();
	// 获取审核标准
	$.getJSON("./sysStandardLibraryAction!getContent.shtml?sysStandardLibrary.id=" + standardContent, function(data){
        if(typeof(data.fail)!="undefined"){
            alert("获取审核标准内容时失败：" + data.fail);
            return;
        }else{

            if(data.result="YES"){

            	$("#displayStandard").html(data.content);
            	artDialog({
            		title:"提示信息",
            		lock: true,
            	    width:	720,
            	    height:	420,
            	    padding:'5 20',
                    content:document.getElementById('optDisplayStandard'),
                    ok: function(){
            	    	this.close();
            	    },
            	    cancel:function(){
            	    }
            	});
            }else{
            	alert("获取审核标准内容失败！" );
                return;
            }
        }
    });

}

/**
 * 查看批注范例
 */
function opt_seeExample(){

	var exampleContent = $("#curStep\\.annotationExampleId").val();
	// 获取审核标准
	$.getJSON("./sysStandardLibraryAction!getContent.shtml?sysStandardLibrary.id=" + exampleContent, function(data){
        if(typeof(data.fail)!="undefined"){
            alert("获取批注规范内容时失败：" + data.fail);
            return;
        }else{

            if(data.result="YES"){

            	$("#displayStandard").html(data.content);

            	artDialog({
            		title:"提示信息",
                    lock:true,
                    width:	720,
            	    height:	420,
            	    padding:'5 20',
                    content:document.getElementById('optDisplayStandard'),
                    ok: function(){
            	    	this.close();
            	    },
            	    cancel:function(){
            	    }
            	});
            }else{
            	alert("获取批注规范内容失败！" );
                return;
            }
        }
    });
}

/**
 * 查看考评结果
 */
function opt_seeEvaluation(){

	// 从后台获取考评条目信息，并进行弹框操作
	$.ajax({
        type: 		"POST",
        dataType:	"json",
        async:		false,
        url: 		"evaluationRecordAction!getEvaluationResult.shtml?r=" + Math.random(),
        data: {
            "entityId"		:	$("#wfEntity\\.id").val()
        },
        success: function(data){
            if(typeof(data.fail)!="undefined"){
                alert("获取考评结果时出错:" + data.fail);
                isError = true;
                return;
            }else{

                // 组装评分页面
            	var psArr = new Array();

            	// 当前流程的整体情况
            	//alert(JSON.encode(data.content));
           		$.each(data.content.evaluationRecordDetails,function(index,evaluationRecordDetail){
           			psArr.push('<tr>');
               		psArr.push('	<th colspan="2" align="left" >分类《'+evaluationRecordDetail.largerName+'》本次考评的得分(总分'+evaluationRecordDetail.totalScore+')：'+evaluationRecordDetail.scored+'，扣分项以及扣分分值如下：</th>');
               		psArr.push('</tr>');

               		psArr.push('<tr>');
               		psArr.push('	<th align="center" style="width:70%">扣分项目</th>');
               		psArr.push('	<th align="center" style="width:10%">扣分分值</th>');
               		psArr.push('</tr>');

               		$.each(evaluationRecordDetail.evaluationRecordDTOs,function(index,evaluationRecordDTO){
                		psArr.push('<tr>');
                   		psArr.push('	<td align="left">');
                   		psArr.push('	'+(index+1)+'.'+evaluationRecordDTO.evaluationItemsName+'(分值'+evaluationRecordDTO.score+'分)');
                   		psArr.push('	</td>');
                   		psArr.push('	<td>');
                   		if(typeof(evaluationRecordDTO.deductScore)!="undefined"){
                   			psArr.push(evaluationRecordDTO.deductScore);
                   		}else{
                   			psArr.push('');
                   		}
                   		psArr.push('	</td>');
                   		psArr.push('</tr>');
    	        	});
           		});


            	$("#evaluationResultList").html(psArr.join(""));

            	artDialog({
            		title:"考评结果",
                    lock:true,
                    width:	720,
                    content:document.getElementById('optEvaluationResult'),
                    ok: function(){
                    	this.close();
            	    }
            	});
            }
        },
        error:function (XMLHttpRequest, textStatus, errorThrown) {
            alert("获取当前流程对应的考评结果时出错！");
            isError = true;
            return;
        }
    });
}

/**
 * 进行事后考评
 */
function opt_afterEvaluation(){

	// 从后台获取考评条目信息，并进行弹框操作
	$.ajax({
        type: 		"POST",
        dataType:	"json",
        async:		false,
        url: 		"evaluationRecordAction!getEvaluationInfo.shtml?r=" + Math.random(),
        data: {
            "entityId"		:	$("#wfEntity\\.id").val(),
            "evaluationTypeId"              :   $("#documentTypeId").val()
        },
        success: function(data){
            if(typeof(data.fail)!="undefined"){
                alert("获取当前流程对应的考评条目时出错:" + data.fail);
                isError = true;
                return;
            }else{

            	$("#firstEvaluation").val(data.newFlg);

                // 组装评分页面
            	var psArr = new Array();

           		psArr.push('<tr>');
           		psArr.push('	<th align="center" style="width:70%">扣分项目</td>');
           		psArr.push('	<th align="center" style="width:10%">扣分</td>');
           		psArr.push('	<th align="center" style="width:10%">扣分分值</td>');
           		psArr.push('</tr>');
            	$.each(data.content,function(index,evaluationRecordDTO){
            		psArr.push('<tr>');
               		psArr.push('	<td align="left">');
               		psArr.push('	'+(index+1)+'.'+evaluationRecordDTO.evaluationItemsName+'(分值'+evaluationRecordDTO.score+'分)');
               		psArr.push('	</td>');
               		psArr.push('	<td align="center" >');
               		if(evaluationRecordDTO.isCheck==1){
               			if(data.newFlg=="YES"){
               				psArr.push('		<input name="itemsKey" type="checkbox" totalScore="'+evaluationRecordDTO.score+'" onClick="getChecked(this);" value="'+evaluationRecordDTO.evaluationItemsId+'" checked>');
               			}else{
               				psArr.push('		<input name="itemsKey" type="checkbox" totalScore="'+evaluationRecordDTO.score+'" onClick="getChecked(this);" value="'+evaluationRecordDTO.id+'" checked>');
               			}

               		}else{
               			if(data.newFlg=="YES"){
               				psArr.push('		<input name="itemsKey" type="checkbox" totalScore="'+evaluationRecordDTO.score+'" onClick="getChecked(this);" value="'+evaluationRecordDTO.evaluationItemsId+'" >');
               			}else{
               				psArr.push('		<input name="itemsKey" type="checkbox" totalScore="'+evaluationRecordDTO.score+'" onClick="getChecked(this);" value="'+evaluationRecordDTO.id+'" >');
               			}
               		}
               		psArr.push('	</td>');
               		psArr.push('	<td>');
               		if(typeof(evaluationRecordDTO.deductScore)!="undefined"){

               			if(data.newFlg=="YES"){
               				psArr.push('		<input name="deductScore" type="text" id="'+evaluationRecordDTO.evaluationItemsId+'" onBlur="checkZero(this);" value="'+evaluationRecordDTO.deductScore+'">');
               			}else{
               				psArr.push('		<input name="deductScore" type="text" id="'+evaluationRecordDTO.id+'" onBlur="checkZero(this);" value="'+evaluationRecordDTO.deductScore+'">');
               			}

               		}else{
               			if(data.newFlg=="YES"){
               				psArr.push('		<input name="deductScore" type="text" id="'+evaluationRecordDTO.evaluationItemsId+'" onBlur="checkZero(this);" value="">');
               			}else{
               				psArr.push('		<input name="deductScore" type="text" id="'+evaluationRecordDTO.id+'" onBlur="checkZero(this);" value="">');
               			}
               		}

               		psArr.push('	</td>');
               		psArr.push('</tr>');
	        	});

            	$("#evaluationList").html(psArr.join(""));

            	artDialog({
            		title:"审核量化事后考评",
                    lock:true,
                    width:	720,
                    content:document.getElementById('optEvaluation'),
                    ok: function(){

                    	// 先校验填写的扣分分值
                    	var arrDeductScore=$("input[name='deductScore']");
                    	var isReturn = "NO";
                        $(arrDeductScore).each(function(){

                        	if(!isEmpty(this.value)){
                        		//alert("1111");^\d+(\.\d{2})?$
                        		if(!(/^\d+(\.\d{2})?$/.test(this.value)) && !(/^\d+(\.\d{1})?$/.test(this.value))){
                            		isReturn = "YES";
                            	}
                        	}

                        });

                        if(isReturn=="YES"){
                        	alert("扣分分值必须是正整数！");
                    	    return false;
                        }
                    	this.close();

                    	afterEvaluationOk();
            	    }
            	});
            }
        },
        error:function (XMLHttpRequest, textStatus, errorThrown) {
            alert("获取当前流程对应的考评条目时出错！");
            isError = true;
            return;
        }
    });

}

/**
 * 事后考评确定
 */
function afterEvaluationOk(){

		var evaluationResultIdChecks="";
		var evaluationResultDeductScore="";

		var arrChk=$("input[name='itemsKey']");
	    $(arrChk).each(function(){
	       if(isEmpty(evaluationResultIdChecks)){

	    	   if(this.checked == false){
	    		   evaluationResultIdChecks = this.value+",0";
	    	   }else{
	    		   evaluationResultIdChecks = this.value+",1";
	    	   }
	       }else{

	    	   if(this.checked == false){
	    		   evaluationResultIdChecks = evaluationResultIdChecks+";"+this.value+",0";
	    	   }else{
	    		   evaluationResultIdChecks = evaluationResultIdChecks+";"+this.value+",1";
	    	   }
	       }
	    });

		var arrDeductScore=$("input[name='deductScore']");
	    $(arrDeductScore).each(function(){

	    	if(isEmpty(evaluationResultDeductScore)){
	    		evaluationResultDeductScore = this.value+","+$(this).attr("id");
	        }else{
	        	evaluationResultDeductScore = evaluationResultDeductScore+";"+this.value+","+$(this).attr('id');
	        }
	    });

		// 将考评信息进行保存
		var url="./evaluationRecordAction!ajaxSaveEvaluationInfo.shtml?r=" + Math.random();
		$.getJSON(url,{"evaluationResultIdChecks":evaluationResultIdChecks,"evaluationResultDeductScore":evaluationResultDeductScore,"newFlg":$("#firstEvaluation").val(),"entityId":$("#wfEntity\\.id").val()},
				function(data){
					if(typeof(data.fail)!="undefined"){
						alert("保存考评信息时出错：" + data.fail);
						return;
					}

					if(data.result="success"){

						alert("保存成功！");
					}
		});
}

/**
 * 同意办结督查件
 */
function opt_finishDcdb(){

	// 将此流程的移动端手写签批原件，转到对应的督查件作为附件
	var url="./wfWaitReceiveAction!ajaxFinishDcdb.shtml?r=" + Math.random();
	$.getJSON(url,{"entityId":$("#wfEntity\\.id").val()},
			function(data){
				if(typeof(data.fail)!="undefined"){
					alert("同意办结督查件时出错：" + data.fail);
					return;
				}

				if(data.result="success"){

					alert("同意办结成功！");
					return;
				}
	});
}

/**
 * 加盖规范性文件的章
 * @returns
 */
function opt_gzGfxwj(){
	
	// 后台直接加盖规范性文件的章，然后生成新的正文文件数据
	var url="./docFileAction!addGfxwjPic.shtml?r=" + Math.random();
	$.getJSON(url,{"dataId":$("#wfEntity\\.docDataId").val(),"dataTable":"WF_ENTITY","type":"ZW_PDF"},
			function(data){
				if(typeof(data.fail)!="undefined"){
					alert("加盖规范性文件章时出错：" + data.fail);
					return;
				}
				if(data.result="success"){
					alert("加盖成功！");
					$('#divTgViewContain').attr('src', $('#divTgViewContain').attr('src'));
				}
	});
	
}

function getServerUri(){
    return "http://"+window.location.host + _contextPath ;
}


//获取自评条目
function selfEvaluation(){
	
	$.ajax({
        type: 		"POST",
        dataType:	"json",
        async:		false,
        url: 		"selfEvaluationRecordAction!getSelfEvaluationRecordInfo.shtml?r=" + Math.random(),
        data: {
            "entityId"		:	$("#wfEntity\\.id").val(),
            "selfEvaluationTypeId" : $("#curStep\\.selfEvaluationMainBodyId").val()
        },
        success: function(data){
        	
        	if(typeof(data.fail)!="undefined"){
                alert("获取自评条目时出错:" + data.fail);
                isError = true;
                return;
            }else{
            	
            	$("#firstEvaluation").val(data.newFlg);
            	
            	 // 组装评分页面
            	var psArr = new Array();
            	// 当前流程的整体情况
            	//<!--第一行 标题-->
    			psArr.push(' <tr> ');
    				psArr.push('<th colspan="6" align="center"><label>发文审核质量跟踪评价</label></th>');
				psArr.push('</tr>');
				
 			    
 			    //<!--第二行 标题-->
				psArr.push(' <tr> ');
					psArr.push('    <th align="center" style="width:10%"><label>评价主体</label></th>');
					psArr.push('    <th colspan="4"    style="width:70%"  align="center"><label>审核各环节把关重点及自评意见</label></th> ');
					psArr.push('    <th align="center" style="width:10%" ><label>质量评价</label></th> ');
				psArr.push(' </tr> ');
				psArr.push('<input type="hidden" id="isSelfEvaluation" name="isSelfEvaluation" value="'+data.content.isSelfEvaluation+'"> ');
				
				if(data.content.isSelfEvaluation==1){
					 //可点评意见 
		        	psArr.push(' <tr> ');
		        	    psArr.push('<input type="hidden" id="qualityGrade" name="qualityGrade" value="'+data.content.qualityGrade+'"> ');
						psArr.push('   <th align="center">'+data.content.selfEvaluationTypeName+'</th>');
						if( (data.content.comments!="") && (data.content.comments!=undefined)){
						  psArr.push('    <td colspan="4" ><textarea id="comments" name="comments"  style= "width:100%;height:100px;overflow:hidden; resize:none;">'+data.content.comments+'</textarea></td> ');
						}else{
						  psArr.push('    <td colspan="4"><textarea id="comments" name="comments" style="width:100%;height:100px;overflow:hidden; resize:none;"></textarea></td> ');
						}
			        	psArr.push('    <td  id="gradeCheckbox" align="left"> ');
						psArr.push('      <input type="checkbox" id="gradeCheckboxOne" name="gradeCheckboxOne" value="1"  >  &nbsp 优<br/> ');
						psArr.push('      <input type="checkbox" id="gradeCheckboxTwo" name="gradeCheckboxTwo" value="2"  >  &nbsp 良 <br/>  ');
						psArr.push('      <input type="checkbox" id="gradeCheckboxThree" name="gradeCheckboxThree" value="3"  >&nbsp 一  般  <br/> ');
						psArr.push('      <input type="checkbox" id="gradeCheckboxFour" name="gradeCheckboxFour" value="4" >   &nbsp 差 ');
						psArr.push('    </td>  ');
					psArr.push(' </tr> ');
					
				}else{
					//不可点评意见
					 $.each(data.content.selfEvaluationRecordValueDTOs,function(index,selfEvaluationRecordValueDTO){
						 if(data.newFlg=="YES"){
			            		psArr.push('<input type="hidden" id="itemId_'+index+'" name="itemId" value="'+selfEvaluationRecordValueDTO.selfEvaluationItemsId+'">');	
					        }else{
					        	psArr.push('<input type="hidden" id="itemId_'+index+'" name="itemId" value="'+selfEvaluationRecordValueDTO.id+'">');
					        }
						 if(index==0){
							 psArr.push(' <tr> ');
							    psArr.push('    <input type="hidden" id="comments" name="comments" value="">');
				        	    psArr.push('    <input type="hidden" id="qualityGrade" name="qualityGrade" value="'+data.content.qualityGrade+'"> ');
								psArr.push('    <th align="center" rowspan="'+data.content.selfEvaluationRecordValueDTOs.length+'">'+data.content.selfEvaluationTypeName+'</th>');
								psArr.push('  <td style="border-right:#fff 1px solid;">'+(index+1)+'.'+selfEvaluationRecordValueDTO.selfEvaluationItemsName +'</td> ');
								
								if(selfEvaluationRecordValueDTO.checkboxOneName!=""&&selfEvaluationRecordValueDTO.checkboxOneName!=undefined){
				            		psArr.push('<input type="hidden" id="checkOneValue_'+index+'" name="checkOneValue" value="'+selfEvaluationRecordValueDTO.checkOneValue+'"> ');
				            		psArr.push('<td align="right" style="width:10% ; border-right:#fff 1px solid;">'+selfEvaluationRecordValueDTO.checkboxOneName+' &nbsp   ');
						        	psArr.push(' <input type="checkbox" name="checkboxOneName" onClick="getValueChecked(this,'+index+');" id="checkboxOneName_'+index+'" value=""> ');  
						        	psArr.push('</td>');
			                    }else{
			                    	psArr.push('<td style="border-right:#fff 1px solid;"></td>');
					        	}
				            	
				           		if(selfEvaluationRecordValueDTO.checkboxTwoName!=""&&selfEvaluationRecordValueDTO.checkboxTwoName!=undefined){
				           			psArr.push('<input type="hidden" id="checkTwoValue_'+index+'" name="checkTwoValue" value="'+selfEvaluationRecordValueDTO.checkTwoValue+'"> ');
				           			psArr.push('<td align="right" style="width:10% ; border-right:#fff 1px solid;">'+selfEvaluationRecordValueDTO.checkboxTwoName+' &nbsp   ');
					           		psArr.push(' <input type="checkbox" name="checkboxTwoName" onClick="getValueChecked(this,'+index+');" id="checkboxTwoName_'+index+'" value=""> ');  
					           		psArr.push('</td>');
				           		}else{
				           			psArr.push('<td style="border-right:#fff 1px solid;"></td>');
				           		} 
				           		
				           		if(selfEvaluationRecordValueDTO.checkboxThreeName!=""&&selfEvaluationRecordValueDTO.checkboxThreeName!=undefined){
				           			psArr.push('<input type="hidden" id="checkThreeValue_'+index+'" name="checkThreeValue" value="'+selfEvaluationRecordValueDTO.checkThreeValue+'"> ');
				           			psArr.push('<td align="right" style="width:10%">'+selfEvaluationRecordValueDTO.checkboxThreeName+' &nbsp   ');
					           		psArr.push(' <input type="checkbox" name="checkboxThreeName" onClick="getValueChecked(this,'+index+');" id="checkboxThreeName_'+index+'" value=""> ');  
					           		psArr.push('</td>');	
								}else{
									psArr.push('<td></td>');
								}  
				           		
				           		psArr.push('    <td id="gradeCheckbox" align="left" rowspan="'+data.content.selfEvaluationRecordValueDTOs.length+'"> ');
								psArr.push('      <input type="checkbox" id="gradeCheckboxOne" name="gradeCheckboxOne" value="1"  >  &nbsp 优<br/> ');
								psArr.push('      <input type="checkbox" id="gradeCheckboxTwo" name="gradeCheckboxTwo" value="2"  >  &nbsp 良 <br/>  ');
								psArr.push('      <input type="checkbox" id="gradeCheckboxThree" name="gradeCheckboxThree" value="3"  >&nbsp 一  般  <br/> ');
								psArr.push('      <input type="checkbox" id="gradeCheckboxFour" name="gradeCheckboxFour" value="4" >   &nbsp 差 ');
								psArr.push('    </td>  ');
								
								psArr.push(' </tr> ');
						 }else{
							 
							 psArr.push(' <tr  > ');
							 psArr.push('  <td style="border-right:#fff 1px solid;">'+(index+1)+'.'+selfEvaluationRecordValueDTO.selfEvaluationItemsName +'</td> ');
					           
				            	if(selfEvaluationRecordValueDTO.checkboxOneName!=""&&selfEvaluationRecordValueDTO.checkboxOneName!=undefined){
				            		psArr.push('<input type="hidden" id="checkOneValue_'+index+'" name="checkOneValue" value="'+selfEvaluationRecordValueDTO.checkOneValue+'"> ');
				            		psArr.push('<td align="right" style="width:10%; border-right:#fff 1px solid;">'+selfEvaluationRecordValueDTO.checkboxOneName+' &nbsp   ');
						        	psArr.push(' <input type="checkbox" name="checkboxOneName" onClick="getValueChecked(this,'+index+');" id="checkboxOneName_'+index+'" value=""> ');  
						        	psArr.push('</td>');
			                    }else{
			                    	psArr.push('<td style="border-right:#fff 1px solid;"></td>');
					        	}
				            	
				           		if(selfEvaluationRecordValueDTO.checkboxTwoName!=""&&selfEvaluationRecordValueDTO.checkboxTwoName!=undefined){
				           			psArr.push(' <input type="hidden" id="checkTwoValue_'+index+'" name="checkTwoValue" value="'+selfEvaluationRecordValueDTO.checkTwoValue+'"> ');
				           			psArr.push('<td align="right" style="width:10%; border-right:#fff 1px solid;">'+selfEvaluationRecordValueDTO.checkboxTwoName+' &nbsp   ');
					           		psArr.push(' <input type="checkbox" name="checkboxTwoName" onClick="getValueChecked(this,'+index+');" id="checkboxTwoName_'+index+'" value=""> ');  
					           		psArr.push('</td>');
				           		}else{
				           			psArr.push('<td style="border-right:#fff 1px solid;"></td>');
				           		} 
				           		
				           		if(selfEvaluationRecordValueDTO.checkboxThreeName!=""&&selfEvaluationRecordValueDTO.checkboxThreeName!=undefined){
				           			psArr.push('    <input type="hidden" id="checkThreeValue_'+index+'" name="checkThreeValue" value="'+selfEvaluationRecordValueDTO.checkThreeValue+'"> ');
				           			psArr.push('<td align="right" style="width:10%">'+selfEvaluationRecordValueDTO.checkboxThreeName+' &nbsp   ');
					           		psArr.push(' <input type="checkbox" name="checkboxThreeName" onClick="getValueChecked(this,'+index+');" id="checkboxThreeName_'+index+'" value=""> ');  
					           		psArr.push('</td>');	
								}else{
									psArr.push('<td></td>');
								} 
							 
							 psArr.push(' </tr> ');	
						 }
					 });
				}
				
				
				psArr.push(' <tr > ');
				psArr.push(' <th align="center" style="width:10%"> 签名');
				psArr.push(' </th> ');
				
				if((data.content.memo!="")&&(data.content.memo!=undefined)){
					  psArr.push(' <td colspan="5" style="width:90%"><textarea id="memo" name="memo" style="width:100%; height:100%; overflow:auto;resize:none;">'+data.content.memo+'</textarea></td> ');
				}else{
					  psArr.push(' <td colspan="5" style="width:90%"><textarea id="memo" name="memo" style="width:100%; height:100%; overflow:auto;resize:none;"></textarea></td> ');
				}
				
				psArr.push(' </tr> ');

	          $("#selfEvaluationRecordList").html(psArr.join(""));
	          
	          //显示已选择的质量等级状态
       		  var grade=$("#qualityGrade").val();
	       	   if(grade==1){
	       	     $("#gradeCheckboxOne").prop("checked","checked");
	       	   }else if (grade==2){
	       	     $("#gradeCheckboxTwo").prop("checked","checked");
	       	   } else if (grade==3){
	       	     $("#gradeCheckboxThree").prop("checked","checked");
	       	   }else if(grade==4){
	       	     $("#gradeCheckboxFour").prop("checked","checked");
	       	   }
		      
	       	//自我评价的质量等级只能选中一个   
		    $('#gradeCheckbox').find('input[type=checkbox]').bind('click', function(){
		            $('#gradeCheckbox').find('input[type=checkbox]').not(this).attr("checked", false);
		            
		            if($('#gradeCheckboxOne').is(':checked')) {
		                 $("#qualityGrade").val(1);
		               };
		            if($('#gradeCheckboxTwo').is(':checked')) {
		                 $("#qualityGrade").val(2);
		               };
		           if($('#gradeCheckboxThree').is(':checked')) {
		                 $("#qualityGrade").val(3);
		               };
		           if($('#gradeCheckboxFour').is(':checked')) {
		                 $("#qualityGrade").val(4);
		               };   
		      });
		    
		   //自动设置复选框是否选中
		   if(data.content.isSelfEvaluation==0){
			   
		     for(var i=0;i<data.content.selfEvaluationRecordValueDTOs.length;i++){
		    	   var checkOne = 'checkOneValue_' + i;
	        	   var checkOneValue=$("#" + checkOne + "").val();
	        	 
	               if(checkOneValue==1){
	            	 var checkboxOneName = 'checkboxOneName_' + i;
		       	     $("#"+checkboxOneName+"").prop("checked","checked");
		       	   }
	               
	               var checkTwo = 'checkTwoValue_' + i;
	        	   var checkTwoValue=$("#" + checkTwo + "").val();
	        	 
	               if(checkTwoValue==1){
	            	 var checkboxTwoName = 'checkboxTwoName_' + i;
		       	     $("#"+checkboxTwoName+"").prop("checked","checked");
		       	   }
	               
	               var checkThree = 'checkThreeValue_' + i;
	        	   var checkThreeValue=$("#" + checkThree + "").val();
	        	 
	               if(checkThreeValue==1){
	            	 var checkboxThreeName = 'checkboxThreeName_' + i;
		       	     $("#"+checkboxThreeName+"").prop("checked","checked");
		       	   }
		      }
		   }
		       	
		       artDialog({
	        		title:"自我评价",
	                lock:true,
	                width:	720,
	                content:document.getElementById('optSelfEvaluationRecord'),
	                ok: function(){
	                	//this.close();
	                	if(data.content.isSelfEvaluation==1){
	                		var checkF=selfEvaluationRecordOk(0);
	                		if(checkF==false){
	                	    	return false;
	                	    }
	                	}else{
	                		var checkT=selfEvaluationRecordOk(data.content.selfEvaluationRecordValueDTOs.length);
	                	    if(checkT==false){
	                	    	return false;
	                	    }
	                	}
		             }
	        	 });  	
            }
        	
        	
        },
        error:function (XMLHttpRequest, textStatus, errorThrown) {
            alert("获取当前流程对应的自评条目时出错！");
            isError = true;
            return;
        }
        
	});
}


function getValueChecked(obj,index){
	
	var	checkboxOneName="checkboxOneName_"+index;
	var	checkboxTwoName="checkboxTwoName_"+index;
	var	checkboxThreeName="checkboxThreeName_"+index;
	
	var checkOneValue="checkOneValue_"+index;	
	var checkTwoValue="checkTwoValue_"+index;
	var checkThreeValue="checkThreeValue_"+index;
	//如果当前checkBox被选中
	if($(obj).is(':checked')){
		if(obj.id==checkboxOneName){
			//让另外两个id值为空，且不被选中
			 $("#"+checkOneValue+"").val(1);
			 $("#"+checkTwoValue+"").val(0);
			 $("#"+checkThreeValue+"").val(0);
      	     $("#"+checkboxTwoName+"").prop("checked",false);
      	     $("#"+checkboxThreeName+"").prop("checked",false);
		}else if(obj.id==checkboxTwoName){
			 $("#"+checkOneValue+"").val(0);
			 $("#"+checkTwoValue+"").val(1);
			 $("#"+checkThreeValue+"").val(0);
     	     $("#"+checkboxOneName+"").prop("checked",false);
     	     $("#"+checkboxThreeName+"").prop("checked",false);
		}else if(obj.id==checkboxThreeName){
			 $("#"+checkOneValue+"").val(0);
			 $("#"+checkTwoValue+"").val(0);
			 $("#"+checkThreeValue+"").val(1);
     	     $("#"+checkboxTwoName+"").prop("checked",false);
     	     $("#"+checkboxOneName+"").prop("checked",false);
		}
	}
	
}



//异步保存自评内容
function selfEvaluationRecordOk(index){
	
	//首先判断是否是可点评意见
	var isSelfEvaluation=$("#isSelfEvaluation").val(); 
	var qualityGrade=$("#qualityGrade").val();
    var memo=$("#memo").val();
    var comments=$("#comments").val();
    
    var selfEvaluationResultIdChecks="";
    
	if(isSelfEvaluation==0){
		 var itemValue="";	
		 var checkValue="";
		 
		 var itemId;
		 var itemIdValue;
		 
		 var checkOne;
		 var checkOneValue;
		 
		 var checkTwo;
		 var checkTwoValue;
		 
		 var checkThree;
		 var checkThreeValue;
		 
		 //未选择
		 var unCheckOne=undefined+","+undefined+","+undefined;
		 var unCheckTwo=0+","+0+","+0;
		 var unCheckThree=undefined+","+undefined+","+0;
		 for(var i=0;i<index;i++){
			 itemId="itemId_"+i;
			 itemIdValue=$("#"+itemId+"").val();
				
			 checkOne="checkOneValue_"+i;
			 checkOneValue=$("#"+checkOne+"").val();
			 if(checkOneValue==undefined){
				checkOneValue=0;	 
			 }
				
			 checkTwo="checkTwoValue_"+i;
			 checkTwoValue=$("#"+checkTwo+"").val();
			 if(checkTwoValue==undefined){
				 checkTwoValue=0;	 
			 }
				
			 checkThree="checkThreeValue_"+i;
			 checkThreeValue=$("#"+checkThree+"").val();
			 if(checkThreeValue==undefined){
				 checkThreeValue=0;	 
			 }
			 
			 checkValue=checkOneValue+","+checkTwoValue+","+checkThreeValue;
			 
			 if(checkValue==unCheckOne||checkValue==unCheckTwo||checkValue==unCheckThree){
				 alert("请正确勾选自评信息!");
				 return false; 
			 }
			 
			 itemValue=	itemIdValue+","+checkValue;
			 selfEvaluationResultIdChecks+=itemValue+";";
			}
	}
	
	if(qualityGrade==0||qualityGrade=="undefined"||qualityGrade==""){
		alert("请进行质量评价！");
		return false;
	}
	
	
	// 将自评信息进行保存
		var url="selfEvaluationRecordAction!ajaxSaveSelfEvaluationInfo.shtml?r=" + Math.random();
		$.getJSON(url,{"selfEvaluationResultIdChecks":selfEvaluationResultIdChecks,
			"isSelfEvaluation":isSelfEvaluation,
			"newFlg":$("#firstEvaluation").val(),
			"entityId":$("#wfEntity\\.id").val(),
			"memo":memo,
			"qualityGrade":qualityGrade,
			"comments":comments,
			"selfEvaluationTypeId" : $("#curStep\\.selfEvaluationMainBodyId").val()
			},
				function(data){
					if(typeof(data.fail)!="undefined"){
						alert("保存自评信息时出错：" + data.fail);
						return;
					}

					if(data.result="success"){
						//alert("保存成功！");
					}
		});
		
		if($("#curStep\\.canEvaluation").val()=="true"){
			evaluation();
	    }else{
		   opt_commitLastDeal();
		}
}



//查看自评结果
function   opt_seeSelfEvaluation(){
	// 从后台获取考评条目信息，并进行弹框操作
		$.ajax({
	        type: 		"POST",
	        dataType:	"json",
	        async:		false,
	        url: 		"selfEvaluationRecordAction!getSelfEvaluationRecordResults.shtml?r=" + Math.random(),
	        data: {
	            "entityId"		:	$("#wfEntity\\.id").val()
	        },
	        success: function(data){
	        	
	            if(typeof(data.fail)!="undefined"){
	                alert("获取自评结果时出错:" + data.fail);
	                isError = true;
	                return;
	            }else{

	                // 组装评分页面
	            	var psArr = new Array();

	            	// 当前流程的整体情况
	            	psArr.push(' <table class="tbl" id="selfEvaluationRecord"> ');
	            	//<!--第一行 标题-->
      			    psArr.push(' <tr> ');
      				psArr.push('<th colspan="7" align="center"><label>发文审核质量跟踪评价表</label></th>');
					psArr.push('</tr>');
					
					//文件标题
					psArr.push(' <tr> ');
  				    psArr.push('<th><label>文件标题</label></th>');
  				    psArr.push('<td colspan="6">'+data.content.entityName+'</td>');
                    psArr.push('</tr>');
	 			    
	 			    //<!--第二行 标题-->
					psArr.push(' <tr> ');
						psArr.push('    <th align="center" ><label>评价主体</label></th>');
						psArr.push('    <th colspan="4" align="center"><label>审核各环节把关重点及自评意见</label></th> ');
						psArr.push('    <th align="center" style="width:10%" ><label>质量评价</label></th> ');
						psArr.push('    <th align="center" style="width:10%" ><label>签   名</label></th> ');
					psArr.push(' </tr> ');

				$.each(data.content.selfEvaluationRecordResults,function(index,selfEvaluationRecordResult){	
				    //判断是否可点评意见
				if(selfEvaluationRecordResult.isSelfEvaluation==1){
						//可点评意见
					psArr.push(' <tr> ');
					    psArr.push('<input type="hidden" id="qualityGrade_'+index+'" name="qualityGrade" value="'+selfEvaluationRecordResult.qualityGrade+'"> ');
						psArr.push('    <td>'+selfEvaluationRecordResult.selfEvaluationTypeName+'</td>');
						if( (selfEvaluationRecordResult.comments!="") && (selfEvaluationRecordResult.comments!=undefined)){
						  psArr.push('    <td colspan="4">点评意见：'+selfEvaluationRecordResult.comments+'</td> ');
						}else{
						  psArr.push('    <td colspan="4">点评意见：</td> ');	
						}
						psArr.push('    <td  id="gradeCheckbox" align="left"> ');
						psArr.push('      <input type="checkbox" id="gradeCheckboxOne_'+index+'" name="gradeCheckboxOne" value="1"  >  &nbsp 优<br/> ');
						psArr.push('      <input type="checkbox" id="gradeCheckboxTwo_'+index+'" name="gradeCheckboxTwo" value="2"  >  &nbsp 良 <br/>  ');
						psArr.push('      <input type="checkbox" id="gradeCheckboxThree_'+index+'" name="gradeCheckboxThree" value="3"  >&nbsp 一  般  <br/> ');
						psArr.push('      <input type="checkbox" id="gradeCheckboxFour_'+index+'" name="gradeCheckboxFour" value="4" >   &nbsp 差 ');
						psArr.push('    </td>  ');
						if((selfEvaluationRecordResult.memo!="")&&(selfEvaluationRecordResult.memo!=undefined)){
		                    psArr.push('    <td >'+selfEvaluationRecordResult.memo+' </td> ');
						}else{
							psArr.push('    <td ></td> ');
						}
                  psArr.push(' </tr> ');
				}else{
						//不为可点评意见
					var j=index;
					
                   $.each(selfEvaluationRecordResult.selfEvaluationRecordValueDTOs,function(index,selfEvaluationRecordValueDTO){	
                     
                  	 if(index==0){
								//第一行
                  	    psArr.push(' <tr> ');
                  	        psArr.push('   <input type="hidden" id="qualityGrade_'+j+'" name="qualityGrade" value="'+selfEvaluationRecordResult.qualityGrade+'"> ');
      						psArr.push('   <td align="left" style="width:10%" rowspan="'+selfEvaluationRecordResult.selfEvaluationRecordValueDTOs.length+'">'+selfEvaluationRecordResult.selfEvaluationTypeName+'</td>');
      						psArr.push('   <td style="border-right:#fff 1px solid;" >'+1+'.'+selfEvaluationRecordValueDTO.selfEvaluationItemsName+'</td> ');
      						
      					 //第一个checkbox
   			           	   if((selfEvaluationRecordValueDTO.checkboxOneName!="")
   			           			   &&(selfEvaluationRecordValueDTO.checkboxOneName!=undefined)
   			           			   &&(selfEvaluationRecordValueDTO.checkOneValue==1)){
   				           	   psArr.push('<td align="right" style="width:10%;border-right:#fff 1px solid;">'+selfEvaluationRecordValueDTO.checkboxOneName+' &nbsp   ');
   			           		   psArr.push(' <input type="checkbox" name="checkboxOneName" id="checkboxOneName" value="" checked> ');  
   			           		   psArr.push('</td>');
   			           	   } else if((selfEvaluationRecordValueDTO.checkboxOneName!="")
   			           			   &&(selfEvaluationRecordValueDTO.checkboxOneName!=undefined)
   			           			   &&(selfEvaluationRecordValueDTO.checkOneValue==0)){
   				           	   psArr.push('<td align="right" style="width:10%;border-right:#fff 1px solid;">'+selfEvaluationRecordValueDTO.checkboxOneName+' &nbsp   ');
   			           		   psArr.push(' <input type="checkbox" name="checkboxOneName" id="checkboxOneName" value="" > ');
   			           		   psArr.push('</td>');
   			           	   }else {
   			           		   psArr.push(' <td align="right" style="width:10%;border-right:#fff 1px solid;"> ');
   			           		   psArr.push('<input type="checkbox"  style="display:none;" name="checkboxOneName" id="checkboxOneName" value="" > ');
   			           		   psArr.push('</td>');
   			           	   }
   			           	   
   			           	 //第二个checkbox
   				           if((selfEvaluationRecordValueDTO.checkboxTwoName!="")
   				           			   &&(selfEvaluationRecordValueDTO.checkboxTwoName!=undefined)
   				           			   &&(selfEvaluationRecordValueDTO.checkTwoValue==1)){
   					           	   psArr.push('<td align="right" style="width:10%;border-right:#fff 1px solid;">'+selfEvaluationRecordValueDTO.checkboxTwoName+' &nbsp   ');
   				           		   psArr.push(' <input type="checkbox" name="checkboxTwoName" id="checkboxTwoName" value="" checked> ');  
   				           		   psArr.push('</td>');
				           	   } else if((selfEvaluationRecordValueDTO.checkboxTwoName!="")
				           			   &&(selfEvaluationRecordValueDTO.checkboxTwoName!=undefined)
				           			   &&(selfEvaluationRecordValueDTO.checkTwoValue==0)){
					           	   psArr.push('<td align="right" style="width:10%;border-right:#fff 1px solid;">'+selfEvaluationRecordValueDTO.checkboxTwoName+' &nbsp   ');
				           		   psArr.push(' <input type="checkbox" name="checkboxTwoName" id="checkboxTwoName" value="" > ');
				           		   psArr.push('</td>');
				           	   }else {
				           		   psArr.push(' <td align="right" style="width:10%;border-right:#fff 1px solid;"> ');
				           		   psArr.push('<input type="checkbox"  style="display:none;" name="checkboxTwoName" id="checkboxTwoName" value="" > ');
				           		   psArr.push('</td>');
				           	   }
   				        //第三个checkbox 
   					        
				           	if((selfEvaluationRecordValueDTO.checkboxThreeName!="")
				           			   &&(selfEvaluationRecordValueDTO.checkboxThreeName!=undefined)
				           			   &&(selfEvaluationRecordValueDTO.checkThreeValue==1)){
					           	   psArr.push('<td align="right" style="width:10%">'+selfEvaluationRecordValueDTO.checkboxThreeName+' &nbsp   ');
				           		   psArr.push(' <input type="checkbox" name="checkboxThreeName" id="checkboxThreeName" value="" checked> ');  
				           		   psArr.push('</td>');
				           	   } else if((selfEvaluationRecordValueDTO.checkboxThreeName!="")
				           			   &&(selfEvaluationRecordValueDTO.checkboxThreeName!=undefined)
				           			   &&(selfEvaluationRecordValueDTO.checkThreeValue==0)){
					           	   psArr.push('<td align="right" style="width:10%">'+selfEvaluationRecordValueDTO.checkboxThreeName+' &nbsp   ');
				           		   psArr.push(' <input type="checkbox" name="checkboxThreeName" id="checkboxThreeName" value="" > ');
				           		   psArr.push('</td>');
				           	   }else {
				           		   psArr.push(' <td align="right" style="width:10%"> ');
				           		   psArr.push('<input type="checkbox"  style="display:none;" name="checkboxThreeNameNone" id="checkboxThreeName" value="" > ');
				           		   psArr.push('</td>');
				           	   }
   				           
      						psArr.push('    <td  align="left" rowspan="'+selfEvaluationRecordResult.selfEvaluationRecordValueDTOs.length+'"> ');
    						psArr.push('      <input type="checkbox" id="gradeCheckboxOne_'+j+'"  name="gradeCheckboxOne" value="1"  >  &nbsp 优<br/> ');
    						psArr.push('      <input type="checkbox" id="gradeCheckboxTwo_'+j+'" name="gradeCheckboxTwo" value="2"  >  &nbsp 良 <br/>  ');
    						psArr.push('      <input type="checkbox" id="gradeCheckboxThree_'+j+'" name="gradeCheckboxThree" value="3"  >&nbsp 一  般  <br/> ');
    						psArr.push('      <input type="checkbox" id="gradeCheckboxFour_'+j+'" name="gradeCheckboxFour" value="4" >   &nbsp 差 ');
    						psArr.push('    </td>  ');
      						
      						if((selfEvaluationRecordResult.memo!="")&&(selfEvaluationRecordResult.memo!=undefined)){
      		                    psArr.push('    <td rowspan="'+selfEvaluationRecordResult.selfEvaluationRecordValueDTOs.length+'">'+selfEvaluationRecordResult.memo+' </td> ');
      						}else{
      							psArr.push('    <td rowspan="'+selfEvaluationRecordResult.selfEvaluationRecordValueDTOs.length+'"></td> ');
      						}
      					
                           psArr.push(' </tr> ');
							
                  	    }else{
                  	    	 psArr.push(' <tr> ');
                  	    	 psArr.push('   <td style="border-right:#fff 1px solid;">'+(index+1)+'.'+selfEvaluationRecordValueDTO.selfEvaluationItemsName+'</td> ');
       						
          					 //第一个checkbox
       			           	   if((selfEvaluationRecordValueDTO.checkboxOneName!="")
       			           			   &&(selfEvaluationRecordValueDTO.checkboxOneName!=undefined)
       			           			   &&(selfEvaluationRecordValueDTO.checkOneValue==1)){
       				           	   psArr.push('<td align="right" style="width:10%;border-right:#fff 1px solid;">'+selfEvaluationRecordValueDTO.checkboxOneName+' &nbsp   ');
       			           		   psArr.push(' <input type="checkbox" name="checkboxOneName" id="checkboxOneName" value="" checked> ');  
       			           		   psArr.push('</td>');
       			           	   } else if((selfEvaluationRecordValueDTO.checkboxOneName!="")
       			           			   &&(selfEvaluationRecordValueDTO.checkboxOneName!=undefined)
       			           			   &&(selfEvaluationRecordValueDTO.checkOneValue==0)){
       				           	   psArr.push('<td align="right" style="width:10%;border-right:#fff 1px solid;">'+selfEvaluationRecordValueDTO.checkboxOneName+' &nbsp   ');
       			           		   psArr.push(' <input type="checkbox" name="checkboxOneName" id="checkboxOneName" value="" > ');
       			           		   psArr.push('</td>');
       			           	   }else {
       			           		   psArr.push(' <td align="right" style="width:10%;border-right:#fff 1px solid;"> ');
       			           		   psArr.push('<input type="checkbox"  style="display:none;" name="checkboxOneName" id="checkboxOneName" value="" > ');
       			           		   psArr.push('</td>');
       			           	   }
       			           	   
       			           	 //第二个checkbox
       				           if((selfEvaluationRecordValueDTO.checkboxTwoName!="")
       				           			   &&(selfEvaluationRecordValueDTO.checkboxTwoName!=undefined)
       				           			   &&(selfEvaluationRecordValueDTO.checkTwoValue==1)){
       					           	   psArr.push('<td align="right" style="width:10%;border-right:#fff 1px solid;">'+selfEvaluationRecordValueDTO.checkboxTwoName+' &nbsp   ');
       				           		   psArr.push(' <input type="checkbox" name="checkboxTwoName" id="checkboxTwoName" value="" checked> ');  
       				           		   psArr.push('</td>');
   				           	   } else if((selfEvaluationRecordValueDTO.checkboxTwoName!="")
   				           			   &&(selfEvaluationRecordValueDTO.checkboxTwoName!=undefined)
   				           			   &&(selfEvaluationRecordValueDTO.checkTwoValue==0)){
   					           	   psArr.push('<td align="right" style="width:10%;border-right:#fff 1px solid;">'+selfEvaluationRecordValueDTO.checkboxTwoName+' &nbsp   ');
   				           		   psArr.push(' <input type="checkbox" name="checkboxTwoName" id="checkboxTwoName" value="" > ');
   				           		   psArr.push('</td>');
   				           	   }else {
   				           		   psArr.push(' <td align="right" style="width:10%;border-right:#fff 1px solid;"> ');
   				           		   psArr.push('<input type="checkbox"  style="display:none;" name="checkboxTwoName" id="checkboxTwoName" value="" > ');
   				           		   psArr.push('</td>');
   				           	   }
       				        //第三个checkbox 
       					        
   				           	if((selfEvaluationRecordValueDTO.checkboxThreeName!="")
   				           			   &&(selfEvaluationRecordValueDTO.checkboxThreeName!=undefined)
   				           			   &&(selfEvaluationRecordValueDTO.checkThreeValue==1)){
   					           	   psArr.push('<td align="right" style="width:10%">'+selfEvaluationRecordValueDTO.checkboxThreeName+' &nbsp   ');
   				           		   psArr.push(' <input type="checkbox" name="checkboxThreeName" id="checkboxThreeName" value="" checked> ');  
   				           		   psArr.push('</td>');
   				           	   } else if((selfEvaluationRecordValueDTO.checkboxThreeName!="")
   				           			   &&(selfEvaluationRecordValueDTO.checkboxThreeName!=undefined)
   				           			   &&(selfEvaluationRecordValueDTO.checkThreeValue==0)){
   					           	   psArr.push('<td align="right" style="width:10%">'+selfEvaluationRecordValueDTO.checkboxThreeName+' &nbsp   ');
   				           		   psArr.push(' <input type="checkbox" name="checkboxThreeName" id="checkboxThreeName" value="" > ');
   				           		   psArr.push('</td>');
   				           	   }else {
   				           		   psArr.push(' <td align="right" style="width:10%"> ');
   				           		   psArr.push('<input type="checkbox"  style="display:none;" name="checkboxThreeName" id="checkboxThreeName" value="" > ');
   				           		   psArr.push('</td>');
   				           	   }
                  	    	 psArr.push(' </tr> ');
								
							}
                  	 
						});
					}
					
				  });
				
			    psArr.push(' </table>  ');

	            $("#selfEvaluationRecordResultList").html(psArr.join(""));
	            
	            //控制质量等级
	            for(var i=0;i<data.content.selfEvaluationRecordResults.length;i++){
		        	   var pGrade = 'qualityGrade_' + i;
		        	   var grade=$("#" + pGrade + "").val();
		        	 
		             if(grade==1){
		            	 var pGradeCheckboxOne = 'gradeCheckboxOne_' + i;
			       	     $("#"+pGradeCheckboxOne+"").prop("checked","checked");
			       	   }else if (grade==2){
			       		var pGradeCheckboxTwo = 'gradeCheckboxTwo_' + i;
			       	     $("#"+pGradeCheckboxTwo+"").prop("checked","checked");
			       	   } else if (grade==3){
			       		var pGradeCheckboxThree = 'gradeCheckboxThree_' + i;
			       	     $("#"+pGradeCheckboxThree+"").prop("checked","checked");
			       	   }else if(grade==4){
			       		var pGradeCheckboxFour = 'gradeCheckboxFour_' + i;
			       	     $("#"+pGradeCheckboxFour+"").prop("checked","checked");
			       	   }
		         }

	            	artDialog({
	            		title:"自评结果",
	                    lock:true,
	                    padding:0,
	                    width:	720,
	                    height:	420,
	                    content:document.getElementById('optSelfEvaluationRecordResult'),
	                    ok: function(){
	                    	this.close();
	            	    }
	            	});
	            }
	        },
	        error:function (XMLHttpRequest, textStatus, errorThrown) {
	            alert("获取当前流程对应的自评结果时出错！");
	            isError = true;
	            return;
	        }
	    });
}






